crontab每小時執行一次

2022-05-27 18:09:09 字數 1236 閱讀 5114

先給出crontab的語法格式

對於網上很多給出的每小時定時任務寫法,可以說絕大多數都是錯誤的!比如對於下面的這種寫法:

00 *   * * *  #每隔一小時執行一次

00 */1 * * * #與上面是相同的任務

這種是正確的嗎?對照最前面給出的語法格式來看,這個定時任務在0分、每小時、每天、每月、每星期執行,看起來似乎很合理啊?前乙個小時的0分和後乙個小時的0分不就是相隔乙個小時嗎?這樣的話不就是每隔乙個小時執行嗎?再仔細看看,好像有點不對勁,為什麼是每小時的0分?如果我在11:55建立了定時任務,希望每小時執行一次,那麼接下來這個定時任務是在12:55執行,還是在12:00執行?很顯然,它是每小時的0分執行,也就是在12:00執行。

似乎沒區別?那麼請思考下,每隔3小時執行如何寫?

網上給出的寫法如下:

0 */3 * * * #錯誤的每隔3小時執行一次寫法
這種也是錯誤的寫法,這種能充分展示前面一小時執行一次帶來的迷惑感,這種寫法其實是每整3小時的0分執行一次。也就是說,它會在每天的3點、9點、12點...等3的整數倍時間點來執行,並不是真正意義上每隔3個小時執行,如同前面類似,如果你在11:56建立這種每3小時的定時任務,那麼它會在12點就開始執行,而不是14:56執行。請看如下驗證:

11:56分建立上面所謂的「每3小時執行一次」的定時任務:

4分鐘後而不是3小時後,crontab執行了該定時任務:

事實上,對於這種 "0 */3 * * * " 這種分鐘時間點固定,小時按每小時或者每3小時的寫法,都是從1點開始算倍數,比如每一小時就是1點、2點、3點,而每2小時就是2點、4點、6點,每3小時就是3點、6點、9點等等,以此類推。

除此之外,網上還有人給出這種的每小時執行一次的定時任務寫法:

* */1 * * * #錯誤的每隔一小時執行一次,事實上每分鐘執行一次
這種比前面那種還不如,它壓根不是每小時執行,而是每分鐘執行!為什麼?因為分鐘要求的是每分鐘執行,而小時卻要求每乙個小時執行,這2個分明是衝突的時間策略。最終以分鐘為準,所以它是每分鐘執行一次。

真正的每隔一小時、每隔105分鐘執行的定時任務應該如何寫呢?如下:

*/60  * * * * #每60分鐘即每小時執行一次

*/105 * * * * #每105分鐘執行一次

crontab每小時執行一次

先給出crontab的語法格式 對於網上很多給出的每小時定時任務寫法,可以說絕大多數都是錯誤的!比如對於下面的這種寫法 00 每隔一小時執行一次 00 1 與上面是相同的任務 這種是正確的嗎?對照最前面給出的語法格式來看,這個定時任務在0分 每小時 每天 每月 每星期執行,看起來似乎很合理啊?前乙個...

linux 定時任務,每小時執行一次

每小時執行一次為 0 1 這種寫法。注意的是,很容易粗心寫成 1 這種寫法,代表每隔一小時每一分鐘都執行一次 其他例子 crontab每分鐘定時執行 1 service mysqld restart 每隔1分鐘執行一次 10 service mysqld restart 每隔10分鐘執行一次 cro...

cron每小時執行一次 cron 表示式

cron 表示式是乙個字串,分為 6 或 7 個域,每乙個域代表乙個含義 cron 有如下兩種語法格式 1 seconds minutes hours day month week year 2 seconds minutes hours day month week 一 結構 corn 從左到右 ...