2012-10-08 141 views
160

*/20 * * * *運行cron作業,每N分鐘加偏移

確保它運行每隔20分鐘,我想運行一個任務,每20分鐘開始,經過5小時,這可能通過計劃?它會是:

5/20 * * * *

+7

感謝巴比倫人,誰決定了我們的時間系統應該由1,2,3,4,5和6 – arivero

+0

整除,如果它是被2整除和3這也是整除由6 – Ziofil

回答

332

運行任務5起過去一小時每隔20分鐘,試試這個:

5-59/20 * * * * 

說明

一個*在分鐘字段相同0-59/1哪裏0-59範圍1步驟。該命令將在範圍內的第一分鐘(0)處運行,然後在與第一個分鐘相距步驟(1)的所有連續分鐘處運行,直到最後(59)。

這就是爲什麼*/20 * * * *將在0分鐘,20分鐘後和40分鐘後運行 - 這與每20分鐘相同。然而,將在0分鐘,25分鐘後和50分鐘後運行 - 這與每25分鐘不一樣。這就是爲什麼通常希望在分鐘字段中使用均勻分成60的步驟值。

因此,要偏移開始時間,請明確指定範圍,並將第一個值設置爲偏移量。

實例

5-59/20 * * * *將在5分鐘後,25分鐘後,45分鐘後運行。

10-59/25 * * * *將在10分鐘後和35分鐘後運行。

1-59/2 * * * *將每隔多分鐘運行一次。

+0

完美的作品。你是怎麼發現的?你能指點我的文檔嗎?謝謝。 – AJP

+6

各種谷歌搜索導致我[這個服務器故障的答案](http://serverfault.com/a/429397/181709)。它有一個錯誤讓我感到困惑,尤其是因爲其他結果表明*分鐘模數步長應該等於零*。我終於找到[本手冊頁](http://publib.boulder.ibm.com/infocenter/db2luw/v9r5/index.jsp?topic=%2Fcom.ibm.db2.luw.sql.rtn.doc%2Fdoc% 2Fc0054381.html)給了我答案。因此,我能夠對現在已修復的服務器故障回答發表評論。我不記得我用來查找IBM頁面的實際搜索條件。 – toxalot

+0

感謝和非常好的工作@toxalot,我希望我們可以授予你「不死的調查員」徽章! :P – AJP

28

當然!

5,25,45 * * * * /your/cron 
+2

謝謝。我曾經這樣做過,希望能有一個更優雅的解決方案。 – AJP

+7

有時,簡單的解決方案更好,因爲它易於閱讀和理解。我喜歡知道'5-59/20'是可能的,但是'5,25,45'有一個好處,那就是它很清楚它的作用。 – thomasrutter

+1

只有當你的步驟足夠大 – Tebe

-7

你可以試試:*/5 * * * * sleep N; your job