1、在未来的某个时间点执行一次某任务;
at
batch
at 时间
at>COMMAND
at>Ctrl+d
指定时间:
绝对时间:HH:MM DD.MM.YY MM/DD/YY 10:20
相对时间:now+#
单位:minutes ,hours , days ,weeks
模糊时间:noon(中午12点) ,midnight(凌晨12点) , teatime(下午4:00)
命令的执行结果,将以邮件的形式发送安排任务的用户
at -l = atq 列出任务
at -d AT_JOB_ID = atrm AT_JOB_ID 删除任务
2、周期性地执行某任务;
cron:自身是一个不间断运行的服务
anacron:cron的补充,能够实现让cron因为各种原因在过去的时间该执行而未执行的任务在恢复正常执行一次。
cron:
系统cron任务
/etc/crontab
分钟 小时 天 月 周 用户
用户cron任务
/var/spool/cron/USERNAME
分钟 小时 天 月 周
时间的有效取值:
分钟:0-59
小时:0-23
天:1-31
月:1-12
周:0-7,0和7都表示周日
时间通配表示:
*:对应的所有有效取值
3 * * * * 每小时的第三分钟
3 * * * * 每周日的每个小时第三分钟
13 12 * * * 每天的12点13分
11 13 * * 5每周五11点13分
,:离散时间点
10,40 * * * * 每半小时执行
5,35 * * * 2,5 每周2和周5每隔半小时执行
-:连续时间点:
10 02 * * 1-5 每周一到周五2点10分执行
/:对应取值范围内每多久一次
*/3 * * * * 每三分钟执行
每两小时执行一次:05 */2 * * *
每两天执行一次: 05 02 */2 * *
执行结果将以邮件形式发送给管理员:
*/3 * * * * cat /etc/fstab &> /dev/null 正确的执行结果和错误执行结果都不发送邮件
cron的环境变量:cron执行所有命令都去PATH环境变量指定的路径下去找
PATH /bin:/shbin:/usr/bin:/usr/sbin
用户任务的管理:
crontab:
-l :列出当前用户的所有cron任务
-e: 编辑
-r:移除所有的cron任务
-u USERNAME: 管理其用户的cron任务
anacron:
/etc/anacrontab
练习:配置本机每隔两天在凌晨3点20备份一次/etc目录,备份文件存放至/backup/etc目录,文件如:etc-2016-10-20.tar.bz2