天天看點

crontab定時任務大全,你值得擁有!

作者:王觀影

之前部署的rpyc服務沒個一到二周就出現一次假死現象,當時也沒有排查,添加了一個定時任務對rpyc服務進行重新開機,可意外的是竟然翻船了,檢視日志發現犯的錯是那麼的可怕!

先看定時任務執行的日志:

crontab定時任務大全,你值得擁有!

然後檢視定時任務,竟然多了一個星号,導緻執行失敗!

5 0 * * * 2,5 supervisorctl -c /etc/supervisord.conf restart rpyc_server 
  >> /var/log/rpyc_restart.log 2>&1 &           

Cron作業是按指定間隔執行的任務。可以将任務安排為按分鐘,小時,某月的某天,某月,某周的某天或它們的任意組合。使用者crontab檔案中的每一行包含六個字段,每個字段之間用空格分隔,後面跟要運作的指令。

Crontab 表達式規則:
注:Linux中沒有second,最小是miniute。
*    *    *    *    *
-    -    -    -    -
|    |    |    |    |
|    |    |    |    +----- 星期中星期幾 (0 - 6) (星期天 為0)
|    |    |    +---------- 月份 (1 - 12)
|    |    +--------------- 一個月中的第幾天 (1 - 31)
|    +-------------------- 小時 (0 - 23)
+------------------------- 分鐘 (0 - 59)
例:30 21 * * *  表示每晚21:30分執行           
  • 前五個時間和日期字段還接受這些運算符*,-,, ,/。
  • *星号運算符表示所有允許的值。如果您在“分鐘”字段中帶有星号,則表示該任務将每分鐘執行一次。
  • -連字元運算符允許您指定一個值範圍。如果您在“星期幾”字段中設定1-5,則該任務将在每個工作日(從星期一到星期五)運作。
  • , 逗号運算符可讓您定義重複值的清單。例如,如果您在“小時”字段中輸入1,3,5,則該任務将在淩晨1點,3點和5點運作。該清單可以包含單個值和範圍,1-5,7,8,10-15
  • /斜杠運算符允許您指定可以與範圍結合使用的步長值。例如,如果分鐘字段中有1-10/2,則表示每2分鐘在1-10範圍内運作指令,與指定1,3,5,7,9相同。
  • 除了值的範圍外,還可以使用星号運算符。要指定每20分鐘運作一次的作業,可以使用 */20。
  • 系統級crontab檔案的文法與使用者crontabs略有不同。 它包含一個附加的必填使用者字段,用于指定将運作cron作業的使用者。

要編輯crontab檔案,或者建立crontab檔案(如果不存在),請使用crontab -e指令。

每5分鐘執行一次Cron作業

0,5,10,15,20,25,30,35,40,45,50,55  * * * * command
  */5  * * * * command           

每周1/3/5淩晨0點5分執行

5 0 * *  3,6 supervisorctl -c /etc/supervisord.conf restart rpyc_server 
  >> /var/log/rpyc_restart.log 2>&1  &           

crontab 定時任務執行大全

每1分鐘執行一次    * * * * * command
每小時的第3和第15分鐘執行    3,15 * * * * command
在上午8點到11點的第3和第15分鐘執行    3,15 8-11 * * * command
每晚的21:30執行    30 21 * * * command
每月1,10,22日的4:45執行    45 4 1,10,22 * * command
每天18:00至23:00之間每隔30分鐘執行    0,30 18-23 * * * command
每一小時執行    * */1 * * * command
晚上11點到早上7點之間,每隔一小時執行    * 23-7/1 * * * command
指定每小時的第5分鐘執行一次    5 * * * * command
指定每月8号的7:30分執行    30 7 8 * * command
指定每年的6月8日5:30執行    30 5 8 6 * command
每15分鐘執行一次    */15 * * * * command
每個月中,每隔10天6:30執行一次    30 6 */10 * * command
每天早上8點30分執行    30 08 * * * command
每周日下午6點30分執行    30 18 * * 0 command
每月1日,15日,29日晚上9點30分各執行一次    30 21 1,15,29 * * command
從早上9點到下午6點,凡遇到整點就執行    00 09-18 * * * command
每隔1分鐘執行一次    0 */1 * * * command
每天23點執行一次    0 23 * * * command
每月1号淩晨1點執行一次    0 1 1 * * command
每隔兩天的上午8點到11點的第3和第15分鐘執行    3,15 8-11 */2 * * command
每晚的21:30執行    30 21 * * * command
每月1,10,22日的4:45執行    45 4 1,10,22 * * command
晚上11點到早上7點之間,每隔一小時執行    0 23-7 * * * command
在24分,30分執行一次    0 24,30 * * * command
每兩個小時    0 */2 * * * command
晚上11點到早上8點之間每兩個小時和早上八點    0 23-7/2,8 * * * command
每周一,三,五的下午3:00執行    00 15 * * 1,3,5 command
每小時的10分,40分執行    10,40 * * * * command
每小時的1分執行    1 * * * * command
每天早晨三點二十分執行    20 3 * * * command           

#頭條創作挑戰賽##linux#