ntpサーバに即時同期させる(時刻同期)

サーバ

VM上のUbuntuを起動させると、時刻がずれていることがよくあります。ubuntuでは標準インストールでntpサーバに定期的に時刻同期を行う設定になっているので、しばらくすると時刻が修正されるのですが、早く時刻を戻したいと思い、強制的に時刻同期を指せる方法について調べました。

● 環境

  windows 11
  VMware ubuntu 24.04 LTS

● 問題のある症状

  VMWare上のOSを起動させると、前回の終了日時がそのまま引き継がれており、しばらくの間時刻設定がずれてしまいます(しばらく使用していると同期される)
  時刻がずれていると、sudo apt update の実行ができません。

# ubuntu を起動後、すぐに apt update を行おうとすると警告が表示され、updateが実行できません

> sudo apt update

ヒット:1 http://archive.ubuntu.com/ubuntu noble InRelease                      
:
パッケージリストを読み込んでいます... 完了                       
E: Release file for http://archive.ubuntu.com/ubuntu/dists/noble-updates/InRelease is not valid yet (invalid for another 4日 6時間 26分 41秒). Updates for this repository will not be applied.

和約:リリースファイルはまだ有効ではありません(あと4日 6時間 26分 41秒待ってください)

● 確認修正方法

 次のコマンドで時刻のずれと設定を確認することができます

# 時刻のずれと設定確認

> timedatectl status
               Local time: 日 2024-07-07 14:52:51 JST   # 本当は現在 07-11 22:10 頃
           Universal time: 日 2024-07-07 05:52:51 UTC
                 RTC time: 日 2024-07-07 05:52:51
                Time zone: Asia/Tokyo (JST, +0900)
System clock synchronized: yes              # yes になっていればそのうち同期されます
              NTP service: active             # active になっていればそのうち同期されます
          RTC in local TZ: no

 

● 即時同期

 次のコマンドで、即時同期を行います。

# ntpサーバの即時同期

> sudo systemctl restart systemd-timesyncd       # 強制同期
> timedatectl status                  # 時刻確認
               Local time: 木 2024-07-11 22:11:42 JST   # 時刻が補正されている
           Universal time: 木 2024-07-11 13:11:42 UTC
                 RTC time: 木 2024-07-11 13:11:41
                Time zone: Asia/Tokyo (JST, +0900)
System clock synchronized: yes
              NTP service: active
          RTC in local TZ: no

宗教上の理由でntpサーバが使えない時はこちら

# ntp サーバが使えない時 (手動設定)
> sudo timedatectl set-time "2024-07-11 14:30:00"

● 最後に

 起動してすぐに時刻を同期することができると、すぐにapt update が実行できるようになるので便利です。

★今回一番つまづいた点
   sudo systemctl restart systemd-timesyncd
    ↓
   sudo systemctl restart system-timesyncd
  と入力して、しばらく悩んでいました。
  「d」が無いほうが覚えやすいのに…