Cron
cron 作業的時區
我們有一個執行 CentOS 5.5 的 VDS,它是使用 EDT 時區創建和配置的。我已替換
etc/localtime
為指向Australia/Melbourne
(UTC+10) 時區文件的連結。執行該date
命令會顯示正確的日期和時間。問題是 cron 作業正在執行,就好像伺服器仍在使用 EDT 時區一樣,即使在重新啟動後也是如此。例如,本應在凌晨 1:01 執行的作業在下午 3:01 執行。
我錯過了什麼?
更改時區後,重啟crond服務即可,無需重啟。不知道為什麼您的 cron 仍在使用 EDT 時區,但在您的 cron 行之前插入以下行:
TZ=Australia/Melbourne * * * * * ...
然後再試一次。
我遇到了同樣的問題 - 在我更改系統的時區後,cron 的日誌條目位於舊時區,即使在重新啟動 crond 之後也是如此。然後我注意到所有日誌條目都關閉了——消息、郵件和任何其他使用 syslog 的程序。
service rsyslog restart
syslog 所做的第一件事是記錄一條消息(自然而然),因此我能夠看到它具有正確的時間戳。為了確定,我重新啟動了 crond,它的日誌條目也是正確的。