1. 程式人生 > >【日常學習筆記】2019/1/9(Linux定時任務Crontab)

【日常學習筆記】2019/1/9(Linux定時任務Crontab)

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單位時間