Linux定时任务Crontab
(1)是什么?
Crontab是Linux或Unix中被用于设置周期性任务的工具,简单了,就是定时任务触发器。
(2)Crontab格式
* * * * * 命令
第一个*代表分钟,0~59
第二个*代表小时,0~23
第三个*代表日期,1~31
第四个*代表月份,1~12
第五个*代表周几,0~7,0和7都代表周日
概括起来就是(分,时,日,月,周)
(3)典型案例
【1】每晚21点30分重启apache服务
30 21 * * * service httpd restart
【2】每月的1,15,30日的5点30分重启apache服务
30 5 1,15,30 * * service httpd restart
【3】每月的1至10日的5点30分重启apache服务
30 5 1-10 * * service httpd restart
使用“-”代表连续性
【4】每隔两分钟就重启apache服务
*/2 * * * * service httpd restart
使用/number,代表每隔number时间段就触发
【5】每天的奇数分钟就重启apache服务
1-59/2 * * * * service httpd restart
1-59代表1至59分钟
/2代表每隔两分钟
两个结合起来,就是奇数分钟执行命令
【6】23点至第二天的7点,每隔一小时,重启apache服务
0 23-7/1 * * * service httpd restart
第一个位置写成0,代表只有在分钟为0时,才执行。
如果写成*的话,代表23点至7点的之间任意一分钟都可以执行,显然不符合
【7】每天的18点至23点,每隔半小时,就重启apache服务
0,30 18-23 * * * service httpd restart
代表18点至23点的0分或者30分执行
或者写成
0-59/30 18-23 * * 8 service httpd restart
代表18点至23点,0到59分钟内每隔30分钟启动一次,第一次是0,第二次是30,同样满足
总结:
* 代表任何时候多匹配
a,b,c 代表a或者是b或者是c的时候匹配
a-b 代表a至b期间内匹配,包含a和b
*/a 代表相应位置上每隔a单位时间