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单位时间