Linux
為什麼 crontab 中的時區設置對計劃沒有影響?
我已經在伺服器上配置了我的時區
timedatectl
,例如:timedatectl set-timezone Europe/Budapest
我已將時區設置添加到我的 crontab 配置中,如下所示:
CRON_TZ=America/Cancun 0 12 * * * echo "not scheduled in time" # or TZ=America/Cancun 0 12 * * * echo "not scheduled in time" # or 0 12 * * * TZ=America/Cancun echo "not scheduled in time"
但無論我嘗試在 crontab(美國/坎昆)中設置什麼 TimeZone 配置,作業總是由
timedatectl
(歐洲/布達佩斯)配置的時區安排。我什至重新啟動了 cron 服務:sudo service cron restart
我會假設
CRON_TZ
或TZ
在 crontab 中應該從系統時間配置中添加一些“獨立性”到計劃中。我在這裡做錯了什麼?為什麼 crontab 中的計劃與
timedatectl
.我在 AWS 上使用 debian。
debian 上沒有 CRONT_TZ。
當您檢查手冊頁時,
man 5 crontab
您可以找到以下內容:cron 守護程序使用定義的時區執行。它目前不支持每個使用者的時區。所有任務:系統和使用者的將根據配置的時區執行。即使使用者在其 crontab 中指定了 TZ 環境變數,這也只會影響 crontab 中執行的命令,而不影響 crontab 任務本身的執行。
您需要做的是將時間設置為伺服器“布達佩斯”上定義的時區。您可以使用此線上工具來計算正確的時間