Debian

自動化 dpkg-重新配置 tzdata

  • January 9, 2021

我正在使用 puppet 來管理一個 debian 伺服器集群。我需要更改集群上每台機器的時區。正確的 debian 方法是使用dpkg-reconfigure tzdata. 但如果我使用對話框,我似乎只能改變它。有什麼方法可以從 shell 自動化,所以我可以寫一個 Exec 來簡化它?

如果沒有,我認為下一個最好的方法可能是讓 puppet在集群中分發/etc/timezone並使用正確的數據。/etc/localtime

任何輸入表示讚賞!

您需要將前端指定為“非互動式”,它將保存您目前的設置。

dpkg-reconfigure 將目前系統設置作為福音,因此只需按照您通常的方式更改您的時區並使用非互動式標誌執行它

例如,讓我更改為我所在的“歐洲/都柏林”:

# echo "Europe/Dublin" > /etc/timezone    
# dpkg-reconfigure -f noninteractive tzdata

顯然,這允許您使用 puppet/cfengine 來分發 /etc/timezone。

編輯:

在@gertvdijk 評論指向https://bugs.launchpad.net/ubuntu/+source/tzdata/+bug/1554806和@scruss回答後,您可能必須在大多數現代發行版中這樣做:

$ sudo ln -fs /usr/share/zoneinfo/Europe/Dublin /etc/localtime
$ sudo dpkg-reconfigure -f noninteractive tzdata

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