醒來後 cron 是否運行預定但錯過的腳本(因為睡眠)?

醒來後 cron 是否運行預定但錯過的腳本(因為睡眠)?

我使用 fedora20 及其預設的 cron。我有一個 cron 作業腳本,它使用 rtcwake 讓伺服器在上午 10:30 進入睡眠狀態,並在中午 12:30 喚醒。如果我在上午 9:40 手動運行腳本,它也會在中午 12:30 喚醒。如果我在上午 9:40 手動運行腳本,它會在中午 12:30 醒來後運行上午 10:30 錯過的 cron 任務並立即進入睡眠狀態(這會使其在下午 3:30 醒來)嗎?

這似乎是我的伺服器發生的情況,我想知道 cron 是否在喚醒後運行錯過的作業。如果是這樣,有什麼辦法可以改變這種行為嗎?非常感謝。

答案1

Fedora 預設為慢性病,它結合了類似 anacron 的功能,即使在系統關閉時也可以定期運行作業。預設/etc/anacrontab看起來像這樣:

#period in days   delay in minutes   job-identifier   command
1       5       cron.daily              nice run-parts /etc/cron.daily
7       25      cron.weekly             nice run-parts /etc/cron.weekly
@monthly 45     cron.monthly            nice run-parts /etc/cron.monthly

/etc/cron.[daily,weekly,monthly]……這表示預設情況下,即使電腦關閉,您放入這些目錄之一 ( ) 的任何腳本也會運行。但是,/etc/crontab或使用者 crontab中的內容/etc/cron.d不會以這種方式運作。如果現有的定期計劃不適合您,請了解man anacrontab如何新增條目。

答案2

並非所有cron守護程式都處理非連續正常運作時間的情況。專門為執行「錯過的」作業而設計的一種是anacron

相關內容