标签:linux的任务计划
Linux的任务计划
任务计划:
在未来的时间点一次性执行任务:at,batch
周期性执行任务:crontab
电子邮件服务
smtp
/var/spool/mail/USERNAME
pop3
imap4
mail命令:
mail:进入交互式收发邮件接口。
mail -s "subject" username@hostname
mail -s "subject" username@hostname < /PATH/FROM/SOMEFILE
COMMAND | mail -s "subject" username@hostname
at命令
承载未来时间运行的某作业:
支持使用作业队列:默认为A队列
ctrl+d----提交作业
at [OPTION]....time
time:
(1)绝对时间
HH:MM
MMDDYY,MM/DD/YY,DD.MM.YY,YY-MM-DD
tomorrow
(2)相对时间
now+#UNIT
minute,hour,day,week
(3)模糊时间
midnight
noon
teatime
常用选项:
-q Queue:at作业队列:
-f /PATH/FROM/SOMEFILES:从指定的文件读取进行的作业
-l:查看作业队列中的当前待运行的作业列表,相当于atq命令
-c at_job_NUM:查看待运行作业的内容
-d:删除指定作业atrm
crontab周期性任务计划
守护进程:crond
周期性任务有两类:
(1)系统crond任务,没有默认运行用户身份,所以要额外指定运行者;
/etc/crontab------ vim命令修改
7个字段
有5个字段:时间点
user-name:以哪个用户身份运行任务
command to be executed:运行的任务
(2)用户crond任务,有某个用户来提交,默认就以提交者的身份运行,所以不需要额外指定运行者
/var/spool/cron/USERNAME
vim命令:不建议
crontab命令,建议
6个字段
有5个字段:时间点
时间点:
分钟:0-59
小时:0-23
日 :1-31
月 :1-12
周 :0-7 (0或者7代表星期天)
注意:包含与,不建议几月几号与周几同时使用
command to be executed:运行的任务
例如:
6 * * * *
说明:
*:对应时间点有效取值范围内的每个时间
-:一个特定的连续范围:3-7
,:一个离散的时间点 3,5,7
/#:有效时间范围内每多少时间,用于指定频率1-30/4,*/4
crontab命令:
crontab [-u user] [ -l| -r | -e ]
-u user:管理目标用户的crond,仅root才有权限,默认管理自己的。
-l:list,列出任务
-r:remove,移除所有任务
-e:edit,编辑
补充工具:anacron-----检查任务,如没有执行,立马执行。
注意:
(1)如果不想接受任务执行结果通知邮件;
COMMAND > /dev/null
(2)对于crontab文件来讲,%有特殊公用。如果命令中出现%,要记得转义,或者使用单引号对其应用
(3)crontab的PATH的变量与用户的变量不完全相同,建议在crontab要使用绝对路径。包括脚本里面也要使用绝对路径。
/root/bin/a.sh
练习:
1、每周一到周六的凌晨3点20分,运行cp命令对/etc/目录进行归档另存,存储位置为/backups/etc-YYYY-MM-DD;
2、每周日凌晨2点30分,运行cp命令对/etc/fstab文件进行备份,存储位置为/backup/fstab-YYYY-MM-DD-hh-mm-ss;
3、每天晚上12点,取得/proc/meminfo文件中所有以S或M开头的行,追加至/statistics/meminfo.txt文件中,且每天的消息之前,要加上类似===============分隔线;
标签:linux的任务计划
原文地址:http://youenstudy.blog.51cto.com/6722910/1692585