Debianでタイムゾーンを永久にリセットするにはどうすればよいですか?


29

Dreamhostは、中西部にいるにもかかわらず、PDTが好きだと考えているようです。タイムゾーンを変更するにはどうすればよいですか?

回答:


73

使いやすいとわかったツールはdpkg-reconfigureです。つかいます:

sudo dpkg-reconfigure tzdata

には含まれていないものも含め、多数の選択肢が与えられtzselectます。


この方法で行うことの利点は、再現可能な方法でそれを行うことで、存在しないタイムゾーンに入れるなどの間違ったことをする可能性を制限することです。
-Mogget

1
これは良いことですが、非対話型(したがってスクリプト化可能な)オプションが必要な場合は、以下の回答を参照してください。
mc0e

14

これはおそらくOPにとっては少し遅れており、ここに到着する他の検索者にとってはより意図的なものです。

非対話型のソリューションが必要な場合は、dpkg-reconfigure tzdataとdebconf-set-selectionsを使用してタイムゾーンを変更するこのソリューションを試してください。

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

/ usr / share / zoneinfoを調べて、タイムゾーンを把握できます。実際、上記のdpkg-reconfigureコマンドは、そこから適切なファイルを/ etc / localtimeにコピーします。以前は手動でそれを行っていましたが、うまくいくようです。

長時間実行されているプロセスが変更を認識しなくても、あまり驚かないでください。例えば、Apacheログのタイムスタンプが頭に浮かびます。それが重要であるかどうか、したがって、実行中のプロセスを再起動する必要があるか、再起動する必要があるかを検討してください。


3
これが機能するために/etc/localtimeは、まだ存在しない要件であることに注意してください。それが存在し、へのソフトリンクである場合/usr/share/zoneinfo/whatever、それはベースとみなされ、それに/etc/localtime応じて更新され、変更を上書きします。
マルチ

11

最近のDebianおよびUbuntuバージョン(Stretch / Xenialなど)で非対話的に編集するには/etc/localtime、同様に削除する必要/etc/timezoneがあります。そうしないと上書きされます。

echo 'Europe/Zurich' > /etc/timezone 
rm /etc/localtime
dpkg-reconfigure -f noninteractive tzdata

この回答は、mc0eの回答に基づいています。私の評判にコメントを追加することはできません。


3

TL; DR

echo "TZ=Etc/UTC" >> /etc/environment
tzconfig

Etc/UTCを使用して見つけた優先タイムゾーンはどこですかtzselect

長いバージョン

使用しているとき

dpkg-reconfigure tzdata

タイムゾーン情報は再起動後に保持されません。設定を確認するには

diff -s /etc/localtime /usr/share/zoneinfo/`cat /etc/timezone`

のみを更新している/etc/timezone場合、更新はと一貫性がないため/etc/localtime実行することをお勧めします

tzconfig

tzselectどのタイムゾーンが実際に存在するかを調べるために使用します(または単に/usr/share/zoneinfoディレクトリを参照します)。

POSIXシステムでは、以下TZが優先され/etc/localtimeます:

export TZ='Europe/Berlin'
$ date
Tue Apr 10 08:51:03 CEST 2018
export TZ='Pacific/Efate'
$ date
Tue Apr 10 18:28:33 +11 2018

頻繁に使用される日付/時刻関連の関数は、プログラムが現在の日付を要求するたびにファイルシステムにアクセスTZ する必要があるため、直接使用すると、多くのシステムコール節約できます。これは微最適化ですが、非常に単純なものです。


TZプロファイルファイルでシンボリックリンクを作成することを積極的にエクスポートしていますか?それは私の経験ではまったく聞こえない。「シンボリックリンクも必ず作成してください...」という意味でしょうか?
18

1
@amnいいえ、シンボリックリンクは作成されません。それを明確にしようとしました。しかし、$TZ変数はglibc関数によって読み取られます:gnu.org/software/libc/manual/html_node/TZ-Variable.html
トムバート

そうではありませんecho "TZ=Etc/UTC" >> /etc/environmentか?あなたはTZ=一部が欠けています...(もし誰かがまだ古代のdebianバージョンを実行している場合)。また、デーモンのような非対話型のものは、まだ使用する/etc/localtime代わりに1セットのバージョンTZ...
マティヤNalis

@MatijaNalisはい、その通りです。修正いただきありがとうございます!
トムバート
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.