Linux

處理多個時區的 cron 替換

  • November 22, 2020

我正在尋找一個可以允許在任意數量的時區(特別是每個使用者/文件超過一個)中安排作業的 cron 替換(或 cron 中的方法,如果可能的話)。我想要的是能夠為每個作業(或 cron 行)指定一個時區,然後只指定本地時區的時間。我注意到我可以更改 cron 執行的整個時區,但最終它只能在一個時區執行。

我目前的解決方案是將我所有的時間轉換為 GMT 並相應地執行作業,唯一的問題是在夏令時轉換週期間,必須進行許多手動編輯以確保事情在各自的本地時區正確執行(例如一些地區不遵循夏令時,或者它們不會在同一日期更改)。

對此有什麼想法嗎?

我認為你正試圖同時擁有它,而現實是你做不到。例如,如果您希望作業在當地時間上午 8 點執行,無論夏令時是否處於活動狀態,那麼您要麼在本地時間執行系統(和 cron)而不進行季節性編輯,要麼在 UTC 執行它(不是格林尼治標準時間)並進行季節性編輯。如果您希望您的作業在相同的 UTC 下執行,無論,那麼您根據 UTC 執行 cron ,就沒有什麼可做的了。

如果您想要的是讓使用者能夠根據他的本地時區安排 cron 作業並且不必為了方便而讓他考慮轉換,那麼您編寫一個接受 cron 規範和時區的轉換腳本然後在幕後轉換為 UTC 並為他編輯 crontab。它甚至可以是一種雙向轉換來處理對現有條目的更改。

如果您告訴我們您實際想要完成的工作,將會很有幫助。

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