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