目录
1. 什么是计划任务?
计划任务在linux的体现主要分为at和crontab,其中:
- at:通过at命令安排任务在某一时刻执行一次
- crontab:通过crontab命令,我们可以在固定的时间间隔执行指定的系统指令或shell script脚本。时间间隔的单位可以是分钟、小时、日、月、周及以上的任意组合。这个命令非常适合周期性的日志分析或数据备份等工作。
2.命令服务管理crontab
在CentOS系统上,crontab服务的名称叫做crond
安装crond服务:yum -y install crontabs
服务操作:
- service crond start #启动服务
- service crond stop #关闭服务
- service crond restart #重启服务
- service crond reload #重新载入配置
- service crond status #服务状态
- chkconfig --list #查看crontab服务是否设置为开机启动
- chkconfig --level 35 crond on #加入开机自动启动
3.crontab功能使用
命令格式:crontab [-u user] file 或 crontab [-u user] [-e | -l | -r]
参数说明:
- -u user:用来设定某个用户的crontab服务,此参数一般由root用户来运行。
- file:是命令文件的名字,表示将file作为crontab的任务列表文件并载入crontab。
- -e:编辑某个用户的crontab文件内容。若不指定用户,则表示当前用户。
- -l:显示某个用户的crontab文件内容,若不指定用户,则表示当前用户。
- -r:删除定时任务配置,从/var/spool/cron目录中删除某个用户的crontab文件,若不指定用户,则表示当前用户。
- -i:在删除用户的crontab文件时给确认提示。
命令示例:crontabl file [-u user] ##用指定的文件替代目前的crontab
必须掌握:
- crontab -l [-u user] #列出用户目前的crontab
- crontab -e [-u user] #编辑用户目前的crontab
基本格式:* * * * * command
- 第1列表示分钟1~59 每分钟用 *或 /* 表示
- 第2列表示小时0~23 (0表示0点) 7-9表示7点到9点之间
- 第3列表示日期1~31
- 第4列表示月份1~12
- 第5列标识号星期0~6(0表示星期天)
- 第6列要运行的命令
配置示例:
- */1 * * * * date >> /root/date.txt ##表示每分钟执行一次date命令
- 30 21 * * * /usr/local/etc/rc.d/httpd restart ##表示每晚的21:30重启apache
- 45 4 1,10,22 * * /usr/local/etc/rc.d/httpd restart ##表示每月1、10、22日的4 : 45重启apache
- 10 1 * * 6,0 /usr/local/etc/rc.d/httpd restart ##表示每周六、周日的1 : 10重启apache
- 0,30 18-23 * * * /usr/local/etc/rc.d/httpd restart ##每天18:00至23:00间每隔30分钟重启apache
- 0 23 * * 6 /usr/local/etc/rc.d/httpd restart ##表示每星期六的11 : 00 pm重启apache
- * */1 * * * /usr/local/etc/rc.d/httpd restart ##每一小时重启apache
- * 23-7/1 * * * /usr/local/etc/rc.d/httpd restart ##晚上11点到早上7点之间每隔一小时重启apache
- 0 11 4 * mon-wed /usr/local/etc/rc.d/httpd restart ##每月4号与每周一到周三的11点重启apache
- 0 4 1 jan * /usr/local/etc/rc.d/httpd restart ##一月一号的4点重启apache