CentOS 7および6をオペレーティングシステムとして使用する複数のサーバーがあります。以前は、DST時間が年に2回変更され、オペレーティングシステムが各サーバーで自動的に実行されました。
今、突然夏時間の政策を変更する法案が合格しました。 OSが以前のように時間を変更しないように、これらのサーバーでDSTが無効になっていることを確認したいと思います。中央タイムサーバーに基づいてこれらの変更を行うことを望みます。
CentOS 7では、このコマンドがDSTを有効にしていないことを確認できます。timedatectl status
出力:DST active: no
ただし、CentOS 6ではDSTが無効になっていることを安全に確認することはできません。どこでも検索しましたが、それを表示するコマンドやファイルが見つかりませんでした。それでは、CentOS 6でDSTが無効になっているかどうかを確認する方法は?
答え1
まず、現在のタイムゾーン設定が何であるかを確認する必要があります。環境変数が設定されている場合はTZ
タイムゾーンで、設定されていない場合はシステムのデフォルトのタイムゾーンがによって決定されます/etc/localtime
。
/etc/localtime
へのシンボリックリンクの場合、/usr/share/zoneinfo/...
現在のタイムゾーンを確認するのは簡単です。リンク先のパス名は、実際のタイムゾーンを正確に識別します。
ただし、RHEL / CentOS 6では、ファイルはリンクではなく、タイムゾーンファイルの1/etc/localtime
つの実際のコピーである可能性が高くなります。/usr/share/zoneinfo/...
1つの小さな問題:デフォルトの/etc/sysconfig/clock
タイムゾーンで何を選択するかを知らせる可能性が高いです。オペレーティングシステムのインストール中/etc/localtime
ただし、後で別のタイムゾーンファイルで上書きしてタイムゾーンを変更すると、/usr/share/zoneinfo/
の情報が最新では/etc/sysconfig/clock
なくなる可能性があります。
したがって、オペレーティングシステムのインストール後にタイムゾーンが変更された可能性がある場合は、/etc/localtime
このファイルの内容を(推定)元の内容と比較する必要があります/usr/share/zoneinfo
。
. /etc/sysconfig/clock
diff /etc/localtime /usr/share/zoneinfo/$ZONE && echo "Confirmed: timezone is $ZONE." || echo "Despite appearances, timezone is NOT $ZONE."
タイムゾーンの正確な名前がわかったら、次のコマンドを使用して、そのタイムゾーンの既知の履歴と予想される将来のDST(およびその他)遷移イベントを表示できます。
zdump -v <timezone name>
このリストには、2499年頃までに年間2回のDSTコンバージョン(4行)が含まれる可能性があるため、リストを少し制限することをお勧めします。たとえば、
zdump -v -c 2020,2025 America/New_York
America/New_York -9223372036854775808 = NULL
America/New_York -9223372036854689408 = NULL
America/New_York Sun Mar 8 06:59:59 2020 UTC = Sun Mar 8 01:59:59 2020 EST isdst=0 gmtoff=-18000
America/New_York Sun Mar 8 07:00:00 2020 UTC = Sun Mar 8 03:00:00 2020 EDT isdst=1 gmtoff=-14400
America/New_York Sun Nov 1 05:59:59 2020 UTC = Sun Nov 1 01:59:59 2020 EDT isdst=1 gmtoff=-14400
America/New_York Sun Nov 1 06:00:00 2020 UTC = Sun Nov 1 01:00:00 2020 EST isdst=0 gmtoff=-18000
America/New_York Sun Mar 14 06:59:59 2021 UTC = Sun Mar 14 01:59:59 2021 EST isdst=0 gmtoff=-18000
America/New_York Sun Mar 14 07:00:00 2021 UTC = Sun Mar 14 03:00:00 2021 EDT isdst=1 gmtoff=-14400
America/New_York Sun Nov 7 05:59:59 2021 UTC = Sun Nov 7 01:59:59 2021 EDT isdst=1 gmtoff=-14400
America/New_York Sun Nov 7 06:00:00 2021 UTC = Sun Nov 7 01:00:00 2021 EST isdst=0 gmtoff=-18000
America/New_York Sun Mar 13 06:59:59 2022 UTC = Sun Mar 13 01:59:59 2022 EST isdst=0 gmtoff=-18000
America/New_York Sun Mar 13 07:00:00 2022 UTC = Sun Mar 13 03:00:00 2022 EDT isdst=1 gmtoff=-14400
America/New_York Sun Nov 6 05:59:59 2022 UTC = Sun Nov 6 01:59:59 2022 EDT isdst=1 gmtoff=-14400
America/New_York Sun Nov 6 06:00:00 2022 UTC = Sun Nov 6 01:00:00 2022 EST isdst=0 gmtoff=-18000
America/New_York Sun Mar 12 06:59:59 2023 UTC = Sun Mar 12 01:59:59 2023 EST isdst=0 gmtoff=-18000
America/New_York Sun Mar 12 07:00:00 2023 UTC = Sun Mar 12 03:00:00 2023 EDT isdst=1 gmtoff=-14400
America/New_York Sun Nov 5 05:59:59 2023 UTC = Sun Nov 5 01:59:59 2023 EDT isdst=1 gmtoff=-14400
America/New_York Sun Nov 5 06:00:00 2023 UTC = Sun Nov 5 01:00:00 2023 EST isdst=0 gmtoff=-18000
America/New_York Sun Mar 10 06:59:59 2024 UTC = Sun Mar 10 01:59:59 2024 EST isdst=0 gmtoff=-18000
America/New_York Sun Mar 10 07:00:00 2024 UTC = Sun Mar 10 03:00:00 2024 EDT isdst=1 gmtoff=-14400
America/New_York Sun Nov 3 05:59:59 2024 UTC = Sun Nov 3 01:59:59 2024 EDT isdst=1 gmtoff=-14400
America/New_York Sun Nov 3 06:00:00 2024 UTC = Sun Nov 3 01:00:00 2024 EST isdst=0 gmtoff=-18000
America/New_York 9223372036854689407 = NULL
America/New_York 9223372036854775807 = NULL
これにより、アメリカ/ニューヨークのタイムゾーンは3月13日にESTからEDTへの最新の変換が完了し、次の変換は11月6日にESTに戻ります。
選択したタイムゾーンでDSTが無効になっている場合、これらのDST遷移の説明は存在しません。
もう1つ重要なことは、すべてのUnixシリーズシステムで、オペレーティングシステムの内部時計は常に次のとおりです。いつもUTCとして実行され、すべてのオペレーティングシステムの内部時間計算は、UTCに対応するUnixタイムスタンプを使用して処理されます。現地時間帯で DST 遷移が発生すると、システムは「時計を変更」せずに、現地時間と UTC 時間の間の変換オフセットのみを変更します。
Linuxシステムでは、デュアルブートシナリオでMicrosoftオペレーティングシステムとの互換性を確保するために、バッテリ駆動のハードウェアクロックを現地時間で実行することを選択できます。このオプションを使用すると、ハードウェアクロックはDST遷移に応じて調整されます。ただし、RTCをUTC時間(通常はサーバー指向のLinuxディストリビューションのデフォルト)に維持する場合、DSTによる実際のクロック調整は不要です。変換係数を適切に変更するだけです。