一、计划任务
1、at 只能执行一次
语法: at 时间
服务:atd 必须开启
1 2 3 | [root@xuegod163 ~] # /etc/init.d/atd status #查看服务状态 atd (pid 2206) is running... [root@xuegod163 ~] # /etc/init.d/atd start #启动服务 |
【例】
1 2 | [root@xuegod163 ~] #at 20:00 2015-2-23 #创建计划任务在2015年2年23日20:00执行 [root@xuegod163 ~] #at now +10min #创建计划任务在十分钟后执行 |
1.1 at查询
1 2 3 4 5 6 7 | [root@xuegod163 ~] # at -l #查询当前的计划任务 32015-02-03 20:55 a root 22015-02-23 20:00 a root [root@xuegod163 ~] # ll /var/spool/at/* -rwx------ 1 root root 3842 Feb 3 20:45 /var/spool/at/a00002016a5170 -rwx------ 1 root root 3842 Feb 3 20:45 /var/spool/at/a000030169e127 PS:执行成功的at计划任务会在该目录下成生一个可执行的脚本文件 |
1.2 at任务删除
语法:atrm at序列号
1 | [root@xuegod163 ~] # atrm 2 |
2、Crond周期性计划任务
2.1 配置文件
1 | [root@xuegod163 ~] # vim /etc/crontab |
2.2 开启服务
1 2 3 4 5 6 7 8 9 | [root@xuegod163 ~] # /etc/init.d/crond status #查看服务状态 crond (pid 2195) is running... [root@xuegod163 ~] # chkconfig --list crond #查看是否开机启动 crond 0:off1:off2:on3:on4:on5:on6:off [root@xuegod163 ~] # chkconfig crond on #设置服务开机自启动 [root@xuegod163 ~] #ls /etc/cron* /etc/cron .hourly /etc/cron .daily /etc/cron .weekly /etc/cron .monthly PS:对于系统级别的计划任务,需要执行的命令和脚本都放在这里 |
2.3 针对用户级别的计划任务
对于root用户:
crontab –e #创建
crontab –l #显示
crontab –r #删除
格式:分 时 日 月 周 命令
取值范围:
分:0-59
小时:0-23
日:1-31
月:1-12
周:0-7 (0 和7 都是周日)
2.4 crontab的使用
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 | [root@xuegod163 ~]# crontab -e 57 20 * * * echo `date` > /tmp/date.txt [root@xuegod163 ~]# date #查询当前时间 Tue Feb 3 20:57:11 CST 2015 [root@xuegod163 ~]# cat /tmp/date.txt Tue Feb 3 20:57:01 CST 2015 【例】 特殊写法 #每月9,18,22日的3点1分,开始执行备份脚本 1 3 9,18,22 * * /usr/bin/back.sh #每月9-18日,3:00执行 0 3 9-18 * * /usr/bin/back.sh #每5分钟,执行一次 */5 * * * * /usr/bin/back.sh 【例】 每天删除5天前的文件 [root@xuegod163 ~]# crontab -e 1 1 * * * find /home/log/ -type f -mtime +5 -exec rm {} \; 【例】 使用root身份,给其它普通用户指定crontab 语法:crontab -u USERNAME -e/-l/-r [root@xuegod63 ~]# crontab -u mk -e 1 * * * * touch /tmp/a.txt 【例】 清除其他用户的计划任务 [root@xuegod63 ~]# crontab -u mk -r 【例】 清空root用户自己的计划任务: [root@xuegod63 ~]# crontab -r |
2.5 anacron
cron用控制循环执行例行性工作。如果我要设定机器每天早上8点进行备份服务。除非保证机器在8点这个时间点不会关机,如果关机了,cron中的脚本,在下次开机将不会被执行。
anacron并没有取代cron的意思,anacron用于机器重启后,会侦测停机期间,有没有cron没有执行的计划任务,如果有,会立即执行一下没有执行的任务。