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


20

新しいスライスホストのインストールのセットアップを自動化するスクリプトを書いています。完璧な世界では、スクリプトを開始した後、スクリプトは実行されますが、注意は必要ありません。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

回答:


18

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

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

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


1
あなたは以上のコピーではないことをシンボリックリンクされなければならない
Zypher

1
彼はDebianを使用しています。dpkg-reconfigure tzdataシンボリックリンクではなくコピーを作成します。その理由は、/ usr / shareがブート時にマウントされない可能性があるためだと思います。
ルードドッグ09

Debianのtzconfigマンページの技術セクションによると:> tzconfigによって行われる作業は実際には非常に簡単です。/ usr / share / zoneinfo /にインストールされた正しいタイムゾーンを指すように、リンク/ etc / localtimeを更新するだけです。
ブレント2009

1
tzconfigは、lennyではdpkg-reconfigure tzdataを支持して廃止され、実際には何もしません。dpkg-reconfigure tzdataを実行して結果を見ると、シンボリックリンクの代わりにコピーされることを確認できます。
ルードドッグ2009

3

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

1
このメソッドはもう機能
ピーターギブソン

Ubuntu 14.04で動作します。
-SuB


2

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


シンボリックリンクを使用/usrし、別のパーティションにマウントされている場合、/usrマウントされる前に開始されるものはすべて正しいタイムゾーンを持たないことに注意してください。Debianを含む今日のほとんどのディストリビューションは、シンボリックリンクではなくコピーします。
ルードドッグ09

1

自分でこれに走った。これを正しく行う方法の完全な構成を次に示します(こことこの質問のコメントの集合です)。

#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

0

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


-2

また、ntpdがインストールされ、実行されていることを確認してください。

yum install ntpd
ntpdate pool.ntp.org
service ntpd start
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.