在linux中,任务计划分俩:未来时间只执行一次和周期性执行
at:未来时间只执行一次
- -V 显示版本信息
- -l: 列出指定队列中等待运行的作业;== atq
- -d: 删除指定的作业;== atrm
- -c: 查看具体作业任务
- -f /path/from/somefile:从指定的文件中读取任务
- -m:当任务被完成之后,将给用户发送邮件,即使没有标准输出
[root@rhel6 ~]# at 指定时间 at> COMMAND Ctrl+d #结束
/var/spool/at/:存放任务计划
/etc/at.{allow,deny}:控制普通用户是执行at任务,如果白名单存在,则只有白名单上的用户可以创建任务计划;如果白名单不存在,黑名单存在,则黑名单以外的用户都可以创建任务计划;如果俩个名单都不存在,则只有管理员可以创建任务计划。
时间格式:
- 绝对时间:HH:MM [YYYY-mm-dd]
- 相对时间:now + # 时间单位
- 时间单位:minutes, hours, days, weeks
- 模糊时间:noon(12:00), midnight(00:00), teatime(16:00)
batch:什么时间有空,什么时候执行
crontab:周期性执行
- -l: 列出当前任务
- -e: 编辑任务
- -r: 移除任务
- -u username: 给其他用户编辑任务
- -i:删除任务时提示,配合-r使用
/var/spool/cron/ :存放用户的任务计划
/etc/cron.{allow,deny} :控制用户创建任务计划黑白名单,同at原理一样
/var/log/cron :日志文件
/etc/cron.hourly/ :每小时执行的脚本
/etc/cron.daily/ :每天执行的脚本
/etc/cron.weekly/ :每周执行的脚本
/etc/cron.monthly/ :每个月执行脚本
[root@rhel6 ~]# cat /etc/crontab #配置文件 SHELL=/bin/bash #执行任务命令的shell类型 PATH=/sbin:/bin:/usr/sbin:/usr/bin #执行任务的环境变量 MAILTO=root #执行任务的用户 HOME=/ # For details see man 4 crontabs # Example of job definition: # .---------------- minute (0 - 59) # | .------------- hour (0 - 23) # | | .---------- day of month (1 - 31) # | | | .------- month (1 - 12) OR jan,feb,mar,apr ... # | | | | .---- day of week (0 - 6) (Sunday=0 or 7) OR sun,mon,tue,wed,thu,fri,sat # | | | | | # * * * * * user-name command to be executed
时间通配表示:
- *:对应时间的所有有效取值,每
- ,:离散时间点,和
- -:连续时间点,到
- /:对应取值范围内多久一次,每隔
@reboot :系统启动后执行 @yearly 0 0 1 1 * :每年的1月1号00:00执行一次任务 @annually 0 0 1 1 * :每年的1月1号00:00执行一次任务 @monthly 0 0 1 * * :每月的1号00:00执行一次任务 @weekly 0 0 * * 0 :每周日的00:00执行一次任务 @daily 0 0 * * * :每天的00:00执行一次任务 @hourly 0 * * * * :每小时执行一次任务
注意:对于cron任务来讲,%有特殊用途;如果在命令中要使用%,则需要转义
记录于:2018.5.5 21:09