【日常學習筆記】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單位時間