检查cron服务
检查Crontab工具是否安装:crontab -l
检查crond服务是否启动:service crond status
安装cron
-yum install vixie-cron
-yum install crontabs
一个简单的例子
每分钟都打印当前时间到一个日志文件中
crontab -e
*/1 * * * * date >> /tmp/log.txt
Crontab的基本组成
配置文件======================》系统服务CROND《=====================配置工具crontab
文件方式设置定时任务 每分钟都会从配置文件刷新定时任务 用于调整定时任务
Crontab的配置文件格式
* * * * * COMMAND
分钟0-59
小时0-23
日期1-31
月份1-12
星期0-7(0或者7代表星期天)
#每晚的21:30重启apache
30 21 * * * service httpd restart
#每月的1、10、22日的4:45重启apache
45 4 1,10,22 * * service httpd restart
#每月的1-10日的4:45重启apache
45 4 1-10 * * service httpd restart
#每隔2分钟重启apache
*/2 * * * * service httpd restart 偶数
#每隔2分钟重启apache
1-59/2 * * * * service httpd restart 奇数
#晚上11点到早上7点之间每隔1小时重启apache
0 23-7/1 * * * service httpd restart
#每天18:00至23:00之间每隔30分钟重启apache
0,30 18-23 * * * service httpd restart
#每天18:00至23:00之间每隔30分钟重启apache
0-59/30 18-23 * * * service httpd restart
Crontab工具的使用
-u -l -e -r
Crontab配置文件
全局(系统)配置文件
-/etc/crontab
-注意格式
Root配置文件
-只有root用户才会把这些内容载入到计划任务表中
1.crontab 只能编辑用户级别的计划任务
2./etc/crontab和cron.d下的是系统级别的计划任务,cron.d是/etc/crontab的系统级别计划任务的补充
3.cron.d的sysstat的系统级别计划任务会覆盖用户计划任务(可以总结为系统计划任务会覆盖用户计划任务)
4.crontab –l 就是操作 /var/spool/cron/root这个文件
/var/log/cron文件保存着cron的任务执行记录
常见错误
1、环境变量
2、第三和第五个域之间执行的是或操作
四月的第一个星期日早晨1时59分运行a.sh
59 1 1-7 4 0 /root/a.sh error
59 1 1-7 4 * test `date +\%w` -eq 0 && /root/a.sh right
分钟设置有误
两个小时运行一次
* 0,2,4,6,8,10,12,14,16,18.20,22 * * * date error
0 */2 * * * date right
补充
Crontab中最小只能设置到每分钟执行一个命令,如果想每半分钟执行某个命令怎么做到
date && sleep 0.5s && date
*/1 * * * * echo "*****************"
*/1 * * * * sleep 30s;echo "*****************"