Crontab配置文件格式参考:
- 每晚的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
- 每隔两分钟重启Apache服务器:
- 偶数分钟:*/2 * * * * service httpd restart
- 奇数分钟:1-59 * * * * service httpd restart
- 晚上11点到早上7点之间,每隔一小时重启Apache(分钟千万不能用*不然每分钟都会执行):
- 0 23-7/1 * * * service httpd restart
- 每天18:00至23:00之间每隔30分钟重启Apache:
- 0,30 18-23 * * * service httpd restart
- 0-59/30 18-23 * * * service httpd restart
小结:
- *表示任何时候都匹配
- 可以用“A,B,C”表示A或者B或者C时执行命令
- 可以用“A-B”表示A到B之间时间执行命令
- 可以用“*/A”表示每A分钟(小时等)执行一次命令
Crontab中最小只能设置到每分钟执行一个命令,如果想每半分钟执行某个命令怎么做到?
- 通过Shell脚本的sleep命令配合Crontab即可完成这一功能
- eg:date && sleep 0.5s && date
可以借助Shell脚本中的test设置一些前置条件:
- 四月的第一个星期日早晨1时59分运行a.sh
- 59 1 1-7 4 * test 'date + \%w' -eq 0 && /root/a.sh