1.linxu任务计划:
任务计划:
在未来时间点执行一次任务:at,batch
周期性执行任务:crontab
电子邮件服务:
smtp:simple mail transmission protocol
/var/spool/mail/USERNAME 个人邮件缓冲目录
pop3:post office protocol
imap4:internet mail access protocol
MUA:mail命令
mail:
mail:进入交互式收发邮件接口
mail -s "SUBJECT" user@hostname
mail -s "SUBJECT" user@hotname < echo "aaa"
command | mail -s "SUBJECT" username@hostname
at命令:
承载未来执行的命令
执行使用作业队列
默认为a队列
Crtl+d
at [option].. time
time命令:
1.绝对时间 HH:MM MMDD[CC]YY
2.相对时间 now+时间
minut hour day week
3.模糊时间
midnight noon teatime
常用选项:
-q QUEUE at作业队列
-f /PATH/filename 从指定的文件中读取制定的文件作业
-l 查看作业队列中的带运行作业列表,等同于atq命令
-c AT_JOB_NUM 获取待作业任务的详细内容
-d 删除指定的命令作业,等同于atrm
batch:
由系统自行选择在资源空闲时运行指定的任务
crontab:周期性执行任务计划
守护进程:crond
周期性任务有两类:
(1)系统cron任务:没有默认运行用户身份;所以需要额外指定运行着
/etc/crontab
vim命令
7个字段
前5个字段:时间字段
username:以哪个用户身份运行
command:运行那个命令
(2)用户cron任务:由某个用户提交,默认就以提交者的身份运行
/var/spool/cron/USERNAME
vim命令:
7个字段
前5个字段:时间字段
username:以哪个用户身份运行
command:运行那个命令
5个时间点:
第一个字段分钟:值域0-59
第二个字段小时:值域0-23
第三个字段日:值域1-31
第四个字段月:值域1-12
第五个字段周:值域0-7
注意:几月几日与周几,不建议同时使用
时间表示法:
数字:表示特定时间点
*:对应时间点有效取值范围内的每个时间点
-:一个连续的时间范围,例如3-7
,:一个离散的时间范围,例如3,5,7
/:有效时间范围内每个多少时间,指定执行频率
crontab命令
crontab [-u user] -l -r -e
-u user:不是运行自己的cron任务,仅管理员有权限
-l:列出cron任务
-r:删除cron任务
-e:编辑cron任务
补充性工具:anacron检查上一次没有正常运行的cron自动执行
注意:如果不想接收命令运行结果的邮件
COMMAND > /dev/null
COMMADN &> /dev/null
对于crontab文件%有特殊意义需要用转移符转义
crontab的PATH变量于用户环境变量不完全相同,需要绝对路径
练习:
1、每周一到周六凌晨3点20分,运行tar命令对/etc目录进行备份,备份目录为/backup/etc-YYYY-MM-DD.tar.xz
2、每周日凌晨2点30分,运行cp命令对/etc/fstab命令进行备份,备份路径为/backup/fstab-YYYY-MM-DD-hh-mm-ss
3、每天晚上12点,取得/proc/meminfo文件中所有以s或m开头的行,追加到/static/meminfo.txt中间以===============为分隔符。
1. [root@localhost ~]# crontab -e 20 3 * * 1-6 tar -czvf /backup/etc-$(date ‘+%F‘).tar.gz /etc/ 2. [root@localhost ~]# crontab -e 30 2 * * */* cp /etc/fstab /backup/fstab-$(date ‘+%F-%H-%M-%S‘) 3. [root@localhost ~]# crontab -e 0 24 * * * echo "================================================">>/statistics/meminfo.txt && cat /proc/meminfo | grep -E ‘^S|^M‘ >> /statistics/meminfo.txt
原文地址:http://7280780.blog.51cto.com/7270780/1692040