Cron
為什麼 cronjobs 在錯誤的時間執行?
我有 cronjobs 設置每天在我的 Ubuntu 伺服器上執行。
例如。0 4 * * * 命令
除了提前 8 小時執行之外,它們都在執行。設置伺服器時,最初設置為 UTC 時間。我跑
sudo dpkg-reconfigure tzdata
將伺服器設置為比 UTC 晚 6 小時的 CST。有趣的是,我在比 UTC 晚 8 小時的 PST 中,但我不知道伺服器是如何知道這一點的。如果我執行命令
date
,它會顯示 CST 中的時間。一定是時間配置錯誤的地方。我在哪裡可以解決這個問題?
你記得更改時區後重新啟動 cron 嗎?如果不是這樣,cron 可能仍然有它最初啟動時的舊時區概念。
雖然不是絕對必要的,但我通常建議在更改時區後重新啟動機器——伺服器的時區不應該改變(或者至少它應該非常罕見),這可以保證伺服器上的每個程序都已重新啟動並且知道變化:-)
對我來說,我發現執行
hwclock
命令時的時間與執行命令時的時間不同一個小時date
。要解決這個問題,您可以呼叫hwclock --systohc
它將同步兩次並在預期時間執行 cronjobs。