2017-01-16 80 views
1

我想要一個作業a執行每個15 mins10:30 AM8:30 PM。我試過30/15 10-20 * * *。但是,它忽略了時間11:00 AM11:15 AM12:00 PM12:15 PM1:00 PM1:15 PMCron模式與開始和結束時間分鐘

我想知道上述表達式正確的cron字符串。

回答

2
# Run command every fifteen minutes between 10:30 and 20:30. 
0,15,30,45 11-19 * * * …command… 
30,45  10 * * * …command… 
0,15,30 20 * * * …command… 

第一行處理從11:00到19:45的整個小時。第二行處理10:30和10:45。第三行處理20:00,20:15,20:30(假設你也希望它在20:30運行 - 如果你不明白這個問題的話)。

它可能不美觀,但它會完成工作。只要確保…command…序列足夠簡單,重複就很明顯。

您可以在您的cron中用0/15替換第一行的第一個組件。你可能會使用30/15作爲第二個,但它看起來沒有比寫的更清晰。我不確定有什麼好的方法來取代其他線路。其他

一種可能性是,使指定每個刻鐘的時間範圍是重構它:

0 11-20 * * * …command… 
15 11-20 * * * …command… 
30 10-20 * * * …command… 
45 10-19 * * * …command… 

你可以任意結合前兩個那些。

+0

嗯。所以我將不得不編寫多個cron模式。不可能從單一的.. ?? – Pattu

+0

我不知道有什麼方法,但我沒有詳細研究現代的'crontab'格式。我寫的第七版Unix(1979)'cron'也可以工作(當時沒有單獨的'crontab'命令!)。對我而言,它不會引起痛苦;我會在'crontab'條目中指定一個簡單的shell腳本(例如'/ root/cron/specific-task.sh'),該腳本將包含任何複雜性。在我的書中,「crontab」文件或條目中的內容應該儘可能簡單,但並不簡單。如果你需要指定shell,那就這樣吧:'sh/root/cron/specific-task.sh'。 –

相關問題