计划任务
1.在未来的某个时间点执行某一次任务;
batch:不需要指定时间,自动在系统空闲时间执行
at
at 时间
at>COMMAND
at>...
at>Ctrl+d
指定时间
绝对时间: HH:MM, DD.MM.YY MM/DD/YY
相对时间:now+#
单位:minutes,hours,days,weeks
模糊时间:noon,midnight,teatime(下午4:00)
命令的执行结果,将以邮件的形式发送给安排任务的用户
at -l = atq:显示job
[[email protected] ~]# at -l 1 2015-08-16 03:00 a root 2 2015-08-17 02:46 a root
at -d AT_JOB_ID= atrm AT_JOB_ID
2.周期性地执行某任务
cron:自身是一个不间断运行的服务
系统cron任务:
配置文件/etc/crontab
分钟 小时 天 月 周 用户 任务
run-parts path/to/directory 执行指定目录下的所有文件
[[email protected] ~]# cat /etc/crontab SHELL=/bin/bash PATH=/sbin:/bin:/usr/sbin:/usr/bin MAILTO=root HOME=/ # run-parts 01 * * * * root run-parts /etc/cron.hourly 02 4 * * * root run-parts /etc/cron.daily 22 4 * * 0 root run-parts /etc/cron.weekly 42 4 1 * * root run-parts /etc/cron.monthly
系统任务的管理
时间的有效取值:
分钟:0-59
小时:0-23
天:1-31
月:1-12
周:0-7 0和7都表示周日
时间通配表示:
*:对应时间的所有有效取值
3 * * * *表示每小时的第3分钟执行
3 * * * 7表示每周日每个小时的第3分钟执行
13 12 * * 5表示每周五的12:13分执行
,:离散时间点
10,40 * * *表示每小时的第10分和40分执行
-:连续时间点
10,02 * * 1-5表示没周一到周五的02:10执行
/#:对应取值范围内的每多久一次
*/3 * * * *表示每三分钟执行
* */2 * * *表示每隔一个小时每分钟执行
cron的环境变量:cron执行的所有命令都去PATH环境变量指定路径下去找
PATH /bin:/sbin:/usr/bin:/usr/sbin
建议在脚本中export PATH= 定义PATH变量
执行结果将以邮件形式发送给管理员
用户cron任务:
配置文件/var/spool/cron/USERNAME
分钟 小时 天 月 周 任务
用户任务的管理
crontab
-l:列出当前用户的所有cron任务
[[email protected] ~]# crontab -l 0 12 * * * date +‘%d.%m.%Y‘
-e:进入vi编辑,增删cron任务,可检测格式是否正确
-r:移除所有任务
-u USERNAME:管理其它用户的cron任务
anacron:cron的补充,能够实现让cron因为各种原因在过去的时间该执行而未执行的任务在回复正常后执行一次
配置文件/etc/anacron
没执行的天数 开机后多少分钟执行 任务
1 65 cron.daily run-parts /etc/cron.daily
7 70 cron.weekly run-parts /etc/cron.weekly
30 75 cron.monthly run-parts /etc/cron.monthly