Cron

為什麼 cronjobs 在錯誤的時間執行?

  • April 30, 2021

我有 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。

引用自:https://serverfault.com/questions/231220