Saya menggunakan boneka untuk admin sekelompok server debian. Saya perlu mengubah zona waktu setiap mesin di kluster. Cara debian yang tepat untuk melakukan ini adalah menggunakan dpkg-reconfigure tzdata
. Tapi sepertinya saya hanya bisa mengubahnya jika saya menggunakan dialog. Apakah ada cara untuk mengotomatisasi ini dari shell sehingga saya bisa menulis Exec untuk membuatnya mudah?
Jika tidak, saya pikir cara terbaik berikutnya mungkin untuk memiliki distribusi boneka /etc/timezone
dan /etc/localtime
dengan data yang benar di seluruh cluster.
Masukan apa pun dihargai!
Jawaban:
Anda perlu menentukan frontend sebagai `noninteractive 'dan itu akan menyimpan pengaturan Anda saat ini.
dpkg-reconfigure akan menjadikan pengaturan sistem saat ini sebagai Injil, jadi cukup ubah zona waktu Anda seperti biasanya dan jalankan dengan flag non-interaktif
mis. bagi saya untuk berubah ke "Eropa / Dublin" di mana saya berada:
Jelas ini memungkinkan Anda untuk menggunakan boneka / cfengine yang Anda suka untuk mendistribusikan / etc / timezone juga.
sumber
echo 'Europe/Dublin' | sudo tee /etc/timezone > /dev/null
sudo bash -c 'echo "Europe/Dublin" > /etc/timezone'
Karena jawaban yang diterima tidak lagi berfungsi (Debian Jessie, April 2017), pendekatan yang dimodifikasi dari tautan komentar @ gertvdijk tampaknya berfungsi sekarang:
sumber
Anda harus dapat menggunakan debconf-set-selection untuk mempraset konfigurasi. Instal debconf-utils dan jalankan
debconf-get-selections | grep tzdata
pada sistem yang dikonfigurasikan dengan benar untuk mencari tahu apa yang mengaturnya juga.sumber
Anda juga dapat menggunakan resep dari wiki Wayang ( arsip ) yang diganti
/etc/localtime
dengan file zoneinfo yang sesuai dari/usr/share/zoneinfo
: -Saya tidak yakin apakah dpkg-mengkonfigurasi melakukan sesuatu yang ekstra, tetapi saya telah menggunakan resep di atas dan itu berfungsi dengan baik.
sumber
Sangat sederhana dan hanya perlu mengetikkan perintah dan menjawab pertanyaan-pertanyaan sederhana.
lalu lari:
sumber