web-dev-qa-db-ja.com

システムクロックをハードウェアクロックと恒久的に同期させる方法を教えてください。

サーバーの更新を確認し、それらを1つずつインストールしてから、再起動が必要かどうかを確認するcronjobを実行しています。再起動が必要な場合、スクリプトはサーバーをrebootします。

ハードウェアクロックはブート時に使用されます。システムクロックが使用されるまでに1分かかります。

システムクロックに切り替える前に、ログはサーバーが1時間ほど遅れていることを示しています。サーバーがハードウェアからシステムクロックに切り替わると、ログがジャンプして1時間ほど先に進み、cronデーモンがトリガーされます。サーバー更新スクリプトの時間がすでに経過しているため、再度実行します。

これは、スクリプトが週に1回だけ実行されることを意図していたため、再起動ループをトリガーします。

hwclock --systohcを実行すると、システムクロックがハードウェアクロックと同期しますが、永続的なものではありません。再起動後、時差は再びずれます。

私の質問は

システムクロックをハードウェアクロックと恒久的に同期させる方法を教えてください。

timedatectl statusの出力:

      Local time: Tue 2018-08-28 12:05:37 CEST
  Universal time: Tue 2018-08-28 10:05:37 UTC
        RTC time: Tue 2018-08-28 10:05:37
       Time zone: n/a (CEST, +0200)
     NTP enabled: yes
NTP synchronized: yes
 RTC in local TZ: yes
      DST active: yes
 Last DST change: DST began at
                  Sun 2018-03-25 01:59:59 CET
                  Sun 2018-03-25 03:00:00 CEST
 Next DST change: DST ends (the clock jumps one hour backwards) at
                  Sun 2018-10-28 02:59:59 CEST
                  Sun 2018-10-28 02:00:00 CET

Warning: The system is configured to read the RTC time in the local time zone.
         This mode can not be fully supported. It will create various problems
         with time zone changes and daylight saving time adjustments. The RTC
         time is never updated, it relies on external facilities to maintain it.
         If at all possible, use RTC in UTC by calling
         'timedatectl set-local-rtc 0'.

  • CentOS Linuxリリース7.5.1804(コア)
    • これはVPSサーバーです。
  • ヨーロッパ/アムステルダム
2
blade19899

timedatectl statusによると:

  • ハードウェアクロック(RTC)がUTC時間(RTC time)に設定されている、
  • システムは、ハードウェアクロックを現地時間(RTC in local TZ)として評価するように設定されています。

その結果、起動時にシステムクロックが1時間遅れて設定されます(DSTのないタイムゾーン)。

man hwclockから:

LinuxのようなPOSIXシステムは、システムクロックがUTCタイムスケールで動作するように設計されています。

あなたはそれを実行して簡単に修正することができます:

timedatectl --adjust-system-clock set-local-rtc 0

すべての悪の根本は、RTCは設定されているTZを覚えていないことです。RTC time行にはTZ表示がないことに注意してください。ファイル内のTZ(/etc/adjtime as @ mr.spuratic 記載)、2つの情報間の同期が失われるのは簡単です。

完全を期すために、IMHOがハードウェアクロックをローカルに設定しておく唯一の状況は、Windowsを備えたデュアルブートマシンです。

4
andcoz