有两种方式:
一、在将来的某个时间点执行一次某任务
咱们能够用下面两个命令:at和batch
at 时间 #指定时间
at> CMMAND #要执行的命令
at>Ctrl+d #提交任务
指定时间的方式:
绝对时间:HH:MM(几点几分)、DD.MM.YY(日月年)、MM/DD/YY(月日年)
相对时间:now+# 如:now+3minutes 即三分钟后
单位:minutes,hours,days,weeks
模糊时间:noon,midnight,teattime
at -l(=atq) 显示当前做业
at -d(=atrm)AT_JOB_ID 删除指定做业
命令的执行结果:将以邮件的形式
batch不须要指定时间它会在系统空闲的时候自动执行任务,其余的都和at相同
2、周期性地执行某任务:
cron:自身是一个不间断运行的服务
anacron:它是cron的补充,可以实现让cron由于各类缘由在过去的时间该执行而未执行的任务再恢复正常执行一次
cron分为两类:
(1)系统cron任务
都定义在/etc/crontab下 格式为:分钟 小时 天 月 周 用户 任务
(2)用户cron任务
都定义在/var/spool/cron/USERANME 格式为:分钟 小时 天 月 周 任务
时间的有效取值:
分钟:0-59
小时:0-23
天:1-31
月:1-12
周:0-7,0和7都表示周日
时间的统配表示:
*:对应的全部有效取值
3 * * * * #每小时的第三分钟
3 * * * 7 #每一个周日的每小时第三分钟
13 12 6 7 * #每一年的七月六号十二点十三分
,:离散时间点
10,40 * * * * #每小时的第十分和第四十分
10,40 02 * * 2,5 #每周2、周五的凌晨两点十分和凌晨四十分
-:表示连续时间点:
10 02 * * 1-5 #每周从周一到周五的凌晨两点十分
/#:对应取值范围内每多久一次
*/3 * * * * #每三分钟一次
08 */2 * * * #每两小时执行一次
10 04 */2 * * #每两天执行一次
执行结果将以邮件形式发给管理员:若是不想让它都发给管理员能够送到/dev/null 目录下,如:*/3 * * * * /bin/cat /etc/fstab > /dev/null 错误信息发给管理员
*/3 * * * * /bin/cat /etc/fstab &> /dev/null 不管正确错误的都不发给管理员
cron的环境变量:cron执行全部命令都去PATH环境变量指定的路径下去找
cron PATH通常只包含 /bin:/sbin:/usr/bin:/usr/sbin
在脚本中能够直接定义PATH变量以下图:
用户任务的管理:
crontab
-l: 列出当前用户的全部cron任务
-e: 编辑
-r: 移除全部任务
-u USERNAME: 管理其用户的cron任务
anacron: 它是对cron的补充,不能替代cron,
配置文件/etc/anacrontab