web-dev-qa-db-ja.com

自動化スクリプトでタイムゾーンを設定する

新しいスライスホストインストールのセットアップを自動化するスクリプトを書いています。完璧な世界では、スクリプトを開始した後、スクリプトは実行されるだけで、私からの注意はありません。私は1つの例外を除いて成功しました。

永続的(再起動後も存続)と正気(標準と夏時間を調整するため、日付を強制するだけではなく)でタイムゾーンを設定するにはどうすればよいですか。

現在、私は使用しています

 dpkg-reconfigure tzdata

これには、パラメータを強制する方法がないようです。ユーザー入力を要求します。


編集:コメントではコードブロックが許可されていないようなので、コメントではなく、ここで編集しています。

以下は、以下のRudedogのコメントに基づいた、私が最終的に作成した実際のコードです。また、/ etc/timezoneが更新されないことにも気付きました。誰がそれを使用するかはわかりませんが、誰かが使用する場合に備えて、私もそれを設定します。

TIMEZONE="America/Los_Angeles"      
echo $TIMEZONE > /etc/timezone                     
cp /usr/share/zoneinfo/${TIMEZONE} /etc/localtime   # This sets the time
21
Tom

あなたはこれを行うことができるはずです

cp /usr/share/zoneinfo/America/Los_Angeles /etc/localtime

上記のコマンドの適切なタイムゾーンに置き換えます。

19
Rudedog

Ubuntu 12.04では、次のようにしてうまくいきました。

# http://manpages.ubuntu.com/manpages/precise/man7/debconf.7.html
export DEBCONF_NONINTERACTIVE_SEEN=true DEBIAN_FRONTEND=noninteractive
echo "Europe/Berlin" > /etc/timezone
dpkg-reconfigure tzdata
3
Schlomo

これを試して:

echo "Europe/London" > /etc/timezone
dpkg-reconfigure -f noninteractive tzdata
3
Amadu Bah

/etc/localtimeの正しいタイムゾーンを指すように/usr/share/zoneinfo/シンボリックリンクを更新

2
brent

これに自分でぶつかった。これを正しく行う方法の完全な構成は次のとおりです(ここと この質問 のコメントの集計です):

#Set time zone and time
echo "tzdata tzdata/Areas select Europe" | debconf-set-selections
echo "tzdata tzdata/Zones/Europe select London" | debconf-set-selections
TIMEZONE="Europe/London"
echo $TIMEZONE > /etc/timezone
cp /usr/share/zoneinfo/${TIMEZONE} /etc/localtime
/usr/sbin/ntpdate pool.ntp.org
1
Synchro

tzdataは、debconfを使用してその質問に回答するため、事前に入力する必要があります。これを行うにはいくつかの方法がありますが、最も簡単なのは インストール中に回答を提示する です。 debconfが使用するデフォルトのデータベースを設定できることに加えて、その方法についてはdebconf(7)のマンページを参照してください。

0
TRS-80