2013-01-08 15 views
1

我一直在擺弄cron。如果您安排腳本每日運行,並且計算機在計時器啓動時關閉,那麼計算機會在當天晚些時候打開計算機時運行腳本?cron.daily clairification

回答

2

cron.daily計劃在特定時間每天運行一次。如果您的電腦在那個時候關閉,它會錯過它。

看看/etc/crontab來查看它的計劃運行時間。在那裏你會看到計劃設置..它遵循以下結構:

MIN HOUR DOM MON DOW CMD

你應該看到類似...

02 4 * * * root run-parts /etc/cron.daily 

這意味着運行/etc/cron.daily文件在每個月的每週4AM天的2分鐘處

1

在Ubuntu上,您通常會安裝anachron。它會運行你的日常工作,下一次你啓動機器的時候,如果最後一次工作之間的間隔大於一天。如果您的機器暫時關閉,它將不會在當天晚些時候執行任務。

從手冊頁:

anacron的可以用於定期地執行命令中,用天數指定的 頻率。與cron(8)不同,它不會假定機器連續運行的 。因此,它可以用於每天24小時不運行的機器,以控制每週,每週 以及通常由cron控制的每月作業。

執行時,Anacron從配置文件 中讀取作業列表,通常爲/ etc/anacrontab(請參閱anacrontab(5))。該文件 包含Anacron控制的作業列表。每個作業條目 指定以天爲單位的時間段,以分鐘爲單位的延遲,唯一作業標識符和shell命令。

對於每項工作,Anacron會檢查最近n天是否已在 中執行此作業,其中n是爲該作業指定的時間段。 如果不是,則在等待指定爲延遲參數的分鐘數 之後,Anacron運行作業的shell命令。

+0

感謝您的回覆。我將這一行添加到/ etc/anacrontab中:(1 5 cron.daily php5 /var/www/mazda/backup.php)像魅力一樣工作! – bandito40

1

快樂是對的。我可以補充一點,如果你需要每天運行你的腳本,但是你不確定你的計算機是否會在請求的時間運行,你可以把你的腳本放在文件夾/etc/cron.daily中,它會運行在啓動。
您也可以使用Anacron

0

不幸的不是。 Cron是一個守護進程,每分鐘一次檢查配置並運行配置的命令。你的cronjobs定義在特定於發行版的cron.daily中是在特定的時間執行的,這通常是在/etc/crontab中定義的(讀取/etc/cron.daily中的所有配置等)

如果你想使確保您的工作每天執行一次,無論機器何時運行,我建議將其添加到您的/etc/rc.local以在啓動後運行該命令。

編輯 看起來像Ubuntu,anacron默認的cron做得更好。閱讀Mithrandir的回答

相關問題