時刻合わせで ntpd の代わりに systemd-timesyncd を使う方法

サーバーの時刻合わせといえば昔は ntpd 一択でしたが今は systemd の timesyncd もあります

両者の違いは以下の通りです

  • ntpd
    • 高機能
    • NTPサーバーを構築するなら ntpdを使うしかない
  • systemd timesyncd
    • クライント動作のみ.NTPサーバーの構築はできない
    • 軽量

サーバーの時刻を合わせたいだけなら systemd-timesyncd を使った方が楽です

導入方法

debianや ubuntsuなら apt でインストールするだけで使えます

$ sudo apt install systemd-timesyncd 

設定ファイルを編集する必要は特にありません

nptがすでにインストールされている場合,ntpは自動でアンインストールされます

設定ファイルについて

設定を変更することはまず無いと思いますが,設定ファイルは /etc/systemd/timesyncd.conf です

中身は以下の通り

[Time]
#NTP=
#FallbackNTP=0.debian.pool.ntp.org 1.debian.pool.ntp.org 2.debian.pool.ntp.org 3.debian.pool.ntp.org

NTP=0.debian.pool.ntp.org 1.debian.pool.ntp.org 2.debian.pool.ntp.org 3.debian.pool.ntp.org

設定ファイルのマニュアルは

$ man timesyncd.conf

で確認できます

動作確認

systemd に付属の timedatectl で動作確認ができます

$ timedatectl 
               Local time: Sat 2023-12-16 17:52:59 JST
           Universal time: Sat 2023-12-16 08:52:59 UTC
                 RTC time: Sat 2023-12-16 08:52:50
                Time zone: Asia/Tokyo (JST, +0900)
System clock synchronized: yes
              NTP service: active
          RTC in local TZ: no

"NTP service: active "という行があれば,時刻同期に成功しています

timedatectlが動作していない場合(ntpを使っている場合も含む)は

              NTP service: n/a

となります