Linuxで夏時間(DST)の変更を無効にする


12

数週間前、DSTは永続的であり、GMT + 3が国内で永久に使用されることが(トルコのエネルギー天然資源省によって)発表されました。

現在、Linuxサーバーのタイムゾーンはヨーロッパ/イスタンブールに設定されています。ただし、tzdataの更新はまだリリースされていません。

更新がないため、2016年10月30日に、zoneinfoファイル(/ usr / share / zoneinfo / Europe / Istanbul)で宣言されているように、タイムゾーンが自動的にGMT + 3からGMT + 2に変更されます。

以下の2016年の詳細を確認できます。

# zdump -v /usr/share/zoneinfo/Europe/Istanbul | grep 2016
/usr/share/zoneinfo/Europe/Istanbul  Sun Mar 27 00:59:59 2016 UT = Sun Mar 27 02:59:59 2016 EET isdst=0 gmtoff=7200
/usr/share/zoneinfo/Europe/Istanbul  Sun Mar 27 01:00:00 2016 UT = Sun Mar 27 04:00:00 2016 EEST isdst=1 gmtoff=10800
/usr/share/zoneinfo/Europe/Istanbul  Sun Oct 30 00:59:59 2016 UT = Sun Oct 30 03:59:59 2016 EEST isdst=1 gmtoff=10800
/usr/share/zoneinfo/Europe/Istanbul  Sun Oct 30 01:00:00 2016 UT = Sun Oct 30 03:00:00 2016 EET isdst=0 gmtoff=7200

(更新がない場合)この状況が危機に陥らないようにするために、サーバーのタイムゾーンを固定GMT + 3に設定するバックアップ計画を立てることにしました。しかし、固定GMT + 3が設定されていると、奇妙な動作に直面します。

タイムゾーンを変更する前に、サーバーのローカル時間とUTC時間を確認してみましょう。

# date
Wed Sep 21 11:13:11 EEST 2016
# date -u
Wed Sep 21 08:13:15 UTC 2016

次のようにタイムゾーンを固定GMT + 3に設定します。

# rm -f /etc/localtime
# ln -s /usr/share/zoneinfo/Etc/GMT+3 /etc/localtime

変更後のサーバーのローカル時刻とUTC時刻を見てみましょう。GMT + 3時間は3時間で、以前のそれは3時間であるべきUTCより後で UTCよりも上記の出力に見られるように、。

# date
Wed Sep 21 05:14:24 GMT+3 2016
# date -u
Wed Sep 21 08:14:26 UTC 2016

現地時間またはUTC時間をリセットしても、変更されません。

# date -s "21 Sep 2016 11:16:00"
Wed Sep 21 11:16:00 GMT+3 2016
# date
Wed Sep 21 11:16:02 GMT+3 2016
# date -u
Wed Sep 21 14:16:05 UTC 2016

# date -u -s "21 Sep 2016 11:16:00"
Wed Sep 21 11:16:00 UTC 2016
# date
Wed Sep 21 08:16:01 GMT+3 2016
# date -u
Wed Sep 21 11:16:02 UTC 2016

オフセットが逆に見えるのはなぜですか?

回答:


12

更新プログラム#1:タイムゾーンデータベースの更新プログラムは最近、いくつかのオペレーティングシステム用に公式リポジトリの下でリリースされています。バージョンにtzdata2016gは、前述の変更の設定が含まれています。

ある時点で、この質問はsuperuser.comで尋ねられた質問の重複です。

明確な答えは

「Etc / GMT + 6などのゾーンは、POSIX標準との下位互換性のために意図的に逆になっています」

しかし、LinuxシステムでDSTの変更を無効にしたい人を助けるために削除すべきではないと私は信じています。

DSTの変更を無効にするに/etc/localtimeは、フォルダーの下に配置されたzoneinfoファイルの1つにファイルをリンクします/usr/share/zoneinfo/Etc/

コマンド例:

# ln -s /usr/share/zoneinfo/Etc/GMT+3 /etc/localtime

最も適切なzoneinfoファイルを選択するには、対象のGMTの符号を逆にします。

つまり、GMT + 3タイムゾーン(UTCより3時間進んでいる)を設定するには、/ usr / share / zoneinfo / Etc / GMT-3を使用する必要があります。


私からの+1ですが、実際には、POSIXについて知っておく必要があるすべてのこと、そしてなぜほとんどの人がそれを嫌うのかがわかります。
MadHatter、2016

2

ある時点で、TZテーブルの新しいリビジョンがリリースされ、すべてのLinuxディストリビューションのアップデートに利用できるようになります。うーん....この問題に対処するための発表が行われた直後に、更新されたタイムゾーンテーブルが利用可能になったと警告することができました。おそらく、状況に応じて新しいTZ指定子が存在する可能性があります。


1
あなたに同意。更新すれば問題ありません。バックアップ計画について話しているだけです。
vaha 2016
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.