1、在未来的某个时间点执行一次任务;有at和batch两命令
at格式如下:
at 时间
at> 命令
at> Ctrl+d #提交的意思
指定时间:
绝对时间:HH:MM 或 DD.MM.YY 或 MM/DD/YY
相对时间:now+(分钟或小时或天数或周)
单位:minutes, hours, days, weeks
模糊时间:noon, midnight, teatime
计划任务的行结果:将以邮件的形式发送给安排任务的用户
at -l 相当于 atq
at -d 作业号 相当于atrm 作业号
2、周期性地执行任务;有cron和anacron
cron:分为系统cron任务和用户cron任务且是一个不间断运行的服务
系统cron任务:配置文件在/etc/crontab
输写格式: 分钟 小时 天 月 周 用户 任务
用户cron任务:配置文件在/var/spool/cron/用户名
输写格式: 分钟 小时 天 月 周 任务
时间取值范围如下:
分钟:0-59
小时:0-23
天:1-31
月:1-12
周:0-7,其中0和7都表示周日
时间通配表示:
*: 对应时间的所有有效取值
2 * * * * 代表每小时的第2分钟执行
5 * * * 7 代表每周日每小时第5分钟执行
10 11 3 6 * 代表每年6月3号11点10分执行
,: 离散时间点:
15,45 01 * * 3,0 代表每周三和周日凌晨1点第15分和第45分执行
-:连续时间点:
1 03 * * 1-5周一至周五凌晨3点1分执行
/值: 对应取值范围内每隔多长时间执行一次
*/5 * * * * 代表每5分钟执行一次
06 */3 * * * 代表每隔两小时第6分钟执行一次
29 03 */5 * * 代表每隔5天凌晨3点29分执行一次
计划任务执行结果将以邮件形式发送给管理员:
cron的环境变量:cron执行所有命令都会去找PATH环境变量指定的路径
2.1. 如果用户没有登入系统,将无法找到执行的命令,所以请用绝对路径
例如:*/3 * * * * /bin/cat /etc/inittab &> /dev/null
2.2. 如果计划任务执行脚本,请先定义PATH路径
例如 PATH=/bin:/sbin:/usr/bin:/usr/sbin
2.3. 用户任务的管理命令:crontab
-l: 列出当前用户的所有cron任务
-e: 编辑
-r: 移除所有任务
-u 用户名: 管理其用户的cron任务
anacron: 是cron的补充,能够实现让cron因特殊原因在过去的时间该执行而未执行的任务
再恢复正常执行一次;
其配置文件在/etc/anacron,系统默认不开启此服务
注意:无论是corn还是anacron计划任务,必须保证这两个服务必须开启,才能执行对应计划任务
3.实例:每周六凌晨1点01分备份/etc/passwd,/etc/group,/etc/shadow文件,保存至/backup目录下
crontab -e
01 01 * * 06 /bin/tar cjf /backup/user-passwd.`date +%F`.tar.bz2 /etc/passwd /etc/group /etc/shadow
4.实例:每20秒执行一次who命令
crontab -e
* * * * * /usr/bin/who
* * * * * sleep 20;/usr/bin/who
* * * * * sleep 40;/usr/bin/who