このページで解説している内容は、以下の YouTube 動画の解説で見ることができます。

【Linux】chronyd関連の情報を表示する:chronycコマンド

chronyd関連の情報を表示する:chronycコマンド

 Linuxシステムの正確な時刻同期を維持するために、chronydデーモンは広く利用されています。chronydは、高速かつ柔軟な時刻同期を提供し、特に不安定なネットワーク環境やモバイルデバイスでの使用に適しています。これに伴い、chronydの動作状況や設定を管理するためのツールとしてchronycコマンドが存在します。

 chronycコマンドは、chronydの状態や統計情報を表示・操作するための強力なコマンドラインユーティリティです。このツールを使用することで、システム管理者は時刻同期の状態を簡単に確認し、必要に応じて設定を変更することができます。

chronycコマンドの概要

 chronycは、chronydデーモンの状態や統計情報を表示・操作するためのコマンドラインユーティリティです。主に時刻同期の状態確認や設定変更に使用されます。

【構文】
chronyc [サブコマンド]

主なサブコマンドと説明

サブコマンド説明
sources参照しているNTPサーバーの情報を表示
主なサブコマンドと説明

chronyのインストール手順(Ubuntuの場合)

chronyパッケージのインストール

利用可能なソフトウェアリポジトリのパッケージリストを更新します。

・「sudo apt update」コマンドを実行します。

user01@ubuntu-vm:~$ sudo apt update
[sudo] user01 のパスワード:
ヒット:1 http://jp.archive.ubuntu.com/ubuntu jammy InRelease
取得:2 http://security.ubuntu.com/ubuntu jammy-security InRelease [129 kB]
取得:3 http://jp.archive.ubuntu.com/ubuntu jammy-updates InRelease [128 kB]
取得:4 http://security.ubuntu.com/ubuntu jammy-security/main i386 Packages [506 kB]
(省略)
パッケージリストを読み込んでいます... 完了
依存関係ツリーを作成しています... 完了
状態情報を読み取っています... 完了
アップグレードできるパッケージが 248 個あります。表示するには 'apt list --upgradable' を実行してください。

chronyパッケージをインストールします。

・「sudo apt install chrony」コマンドを実行します。

user01@ubuntu-vm:~$ sudo apt install chrony
パッケージリストを読み込んでいます... 完了
依存関係ツリーを作成しています... 完了
状態情報を読み取っています... 完了
以下のパッケージは「削除」されます:
  systemd-timesyncd
以下のパッケージが新たにインストールされます:
  chrony
アップグレード: 0 個、新規インストール: 1 個、削除: 1 個、保留: 247 個。
290 kB のアーカイブを取得する必要があります。
この操作後に追加で 361 kB のディスク容量が消費されます。
続行しますか? [Y/n] y
取得:1 http://jp.archive.ubuntu.com/ubuntu jammy/main amd64 chrony amd64 4.2-2ubuntu2 [290 kB]
290 kB を 1秒 で取得しました (244 kB/s)
(データベースを読み込んでいます ... 現在 208927 個のファイルとディレクトリが
インストールされています。)
systemd-timesyncd (249.11-0ubuntu3.11) を削除しています ...
以前に未選択のパッケージ chrony を選択しています。
(データベースを読み込んでいます ... 現在 208913 個のファイルとディレクトリが
インストールされています。)
.../chrony_4.2-2ubuntu2_amd64.deb を展開する準備をしています ...
chrony (4.2-2ubuntu2) を展開しています...
chrony (4.2-2ubuntu2) を設定しています ...

Creating config file /etc/chrony/chrony.conf with new version

Creating config file /etc/chrony/chrony.keys with new version
dpkg-statoverride: 警告: --update が指定されましたが、/var/log/chrony は存在
しません
Created symlink /etc/systemd/system/chronyd.service → /lib/systemd/system/ch
rony.service.
Created symlink /etc/systemd/system/multi-user.target.wants/chrony.service →
 /lib/systemd/system/chrony.service.
dbus (1.12.20-2ubuntu4.1) のトリガを処理しています ...
man-db (2.10.2-1) のトリガを処理しています ...

chronydサービスの起動

・「sudo systemctl start chrony」コマンドを実行します

user01@ubuntu-vm:~$ sudo systemctl start chrony

chronydサービスの自動起動の設定

・「sudo systemctl enable chrony」コマンドを実行します

user01@ubuntu-vm:~$ sudo systemctl enable chrony
Synchronizing state of chrony.service with SysV service script with /lib/systemd/systemd-sysv-install.
Executing: /lib/systemd/systemd-sysv-install enable chrony

コマンドの使用例と解説

1.参照先のNTPサーバーの確認

・「chronyc sources localhost」コマンドを実行します

 このコマンドは、現在のLinuxシステムが参照しているNTPサーバーを表示します。localhostは操作しているLinux自身を指します。

user01@ubuntu-vm:~$ chronyc sources localhost
MS Name/IP address         Stratum Poll Reach LastRx Last sample
===============================================================================
^- prod-ntp-4.ntp1.ps5.cano>     2   9   377   156  +2562us[+2562us] +/-  116ms
^- prod-ntp-3.ntp4.ps5.cano>     2   9   377   144  +2651us[+2651us] +/-  116ms
^- prod-ntp-5.ntp4.ps5.cano>     2   9   377   476  +2805us[+2805us] +/-  120ms
^- alphyn.canonical.com          2   9   377   148   +869us[ +869us] +/-  116ms
^- time.cloudflare.com           3   9   377   419  +4296us[+4296us] +/-   75ms
^* ntp-b2.nict.go.jp             1   9   377   482   -599us[ -872us] +/-   11ms
^- mail.moe.cat                  2   9   377    98    -21us[  -21us] +/-   30ms
^+ ntp-a2.nict.go.jp             1   9   377   282    +79us[  +79us] +/-   12ms

2.参照先のNTPサーバーの変更

設定ファイルの編集

・「sudo nano /etc/chrony/chrony.conf」コマンドを実行します

nanoエディタで編集します。※エディタはお好みのものを使用してください。

現在の参照先をコメントアウトし、新しいNTPサーバーを追加します。

(省略)
#pool ntp.ubuntu.com        iburst maxsources 4 # コメントアウト
#pool 0.ubuntu.pool.ntp.org iburst maxsources 1 # コメントアウト
#pool 1.ubuntu.pool.ntp.org iburst maxsources 1 # コメントアウト
#pool 2.ubuntu.pool.ntp.org iburst maxsources 2 # コメントアウト
server ntp.nict.jp iburst # 新規で行を追加

nanoエディタの場合、「Ctrl」+「s」キーで保存し、「Ctrl」+「x」で終了します。

chronydサービスの再起動

・「sudo systemctl restart chrony」コマンドを実行します

user01@ubuntu-vm:~$ sudo systemctl restart chrony

3.chronydサービスの稼働状況の確認

・「sudo systemctl status chrony」コマンドを実行します

このコマンドは、chronydサービスの現在の稼働状況を確認します。

Active欄が「active (running)」と表示されたら、chronydは、問題なく再起動していることを意味します。

user01@ubuntu-vm:~$ sudo systemctl status chrony
● chrony.service - chrony, an NTP client/server
     Loaded: loaded (/lib/systemd/system/chrony.service; enabled; vendor preset: enabled)
     Active: active (running) since Fri 2024-07-19 00:03:55 JST; 1min 55s ago
       Docs: man:chronyd(8)
             man:chronyc(1)
             man:chrony.conf(5)
    Process: 4521 ExecStart=/usr/lib/systemd/scripts/chronyd-starter.sh $DAEMON_OPTS (co>
   Main PID: 4530 (chronyd)
      Tasks: 2 (limit: 2242)
     Memory: 1.4M
        CPU: 34ms
     CGroup: /system.slice/chrony.service
             ├─4530 /usr/sbin/chronyd -F 1
             └─4531 /usr/sbin/chronyd -F 1
(省略)

「q」キーを押して終了させます。

4.参照先のNTPサーバーの確認

・「chronyc sources」コマンドを実行します

このコマンドは、chronyc sources localhostと同様に、参照しているNTPサーバーの情報を表示します。

※表示されるサーバー名は、環境によって異なります。

user01@ubuntu-vm:~$ chronyc sources
MS Name/IP address         Stratum Poll Reach LastRx Last sample
===============================================================================
^* ntp-b2.nict.go.jp             1   6   377    37   -153us[  +64us] +/-   10ms

chronycコマンドの注意点

 chronycコマンドを実行しても何も表示されない場合があります。chronydの再起動した直後は、参照先のNTPサーバーの特定する作業が完了しておらず、NTPサーバーを参照できていないことがあります。その場合は、少し時間を置いてから、再度chronycコマンドを実行ます。

まとめ

 chronycコマンドは、chronydの状態や統計情報を確認・操作するための強力なツールです。特に、NTPサーバーの参照状況やシステムクロックの状態を確認する際に便利です。適切に設定・使用することで、Linuxシステムの時刻同期を正確に維持することができます。