我遇到了一個情況,我認爲每55分鐘運行一個cron作業實際上是在小時的最後一小時和之後55分鐘運行的。實際上,這不是一個cron工作,但它是一個使用cron語法的PHP scheduling application。克朗「步驟」如何工作?
當我要求此應用程序每55分鐘計劃一次作業時,它會創建一個類似於以下內容的crontab行。
*/55 * * * *
此行的crontab結束不運行作業每55分鐘。相反,工作時間在55分鐘後,並在一小時的時間。我不希望這樣。我已經運行這個雖然cron tester,並驗證不良行爲是正確的cron行爲。
這使我查找/
實際上的含義。當我看到cron manual時,我得知斜線表示「步驟」,但手冊本身有點模糊,因此這意味着
步長值可以與範圍結合使用。在「
<number>
」範圍之後指定在該範圍內跳過數字值。例如,可以在小時字段中使用「0-23/2
」以指定每隔一小時執行一次命令(V7標準中的替代方法是「0,2,4,6,8,10,12,14,16,18,20,22"
」)。星號後也允許執行步驟,因此如果您想說「每兩小時」,只要使用‘*/2
’。
本手冊的描述(‘通過的範圍內指定數字的值的跳躍’)是一點點模糊,並且‘每兩小時’的例子是有點誤導(這是大概是什麼導致了應用程序的bug)
於是,兩個問題:
unix cron程序如何使用「步驟」信息(斜線後的數字)來決定是否應該跳過運行作業? (模塊化的部門?如果是這樣,在什麼情況下決定一個「真正的」運行,哪些決定沒有?或者是別的什麼?)
是否可以配置一個unix cron作業來運行每個「 N「分鐘?
@shellter我不想在一小時後只運行55次,我想每55分鐘運行一次。時間過後在55點跑,每小時一次。更重要的是,我想知道「步驟」功能實際上是如何工作的,以及是否可以說「每N分鐘」,而不管N是什麼。 – 2014-12-10 23:16:15
對於反對/接近 - 這個問題是關於cron的調度邏輯是如何被編程的**,以支持使用cron邏輯的PHP程序包編寫軟件。這似乎很主題 – 2014-12-11 17:18:44