システム クロックをハードウェア クロックと永続的に同期するにはどうすればよいですか?

システム クロックをハードウェア クロックと永続的に同期するにはどうすればよいですか?

サーバーの更新をチェックし、それらを 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サーバーです。
  • ヨーロッパ/アムステルダム

答え1

あなたのによると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を記憶していないことです。行にはTZ表示がないことに注意してください。時間をハードウェア部品に保存し、TZをファイルに保存するとRTC time/etc/adjtimeスプラティック注意)、2 つの情報間の同期が失われやすくなります。

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

関連情報