NTP(Network Time Protocol)は、システムの時刻をオンラインNTPサーバーとわずか数ミリ秒の精度で同期するプロトコルです。 NTPはUDPポート123でリッスンします。この記事では、Ubuntu 18.04でNTPサーバーを使用して時刻を同期する方法を説明します。これは、ubuntu16.04でも機能するはずです。
クロック周波数のわずかな不一致により、システム時間とハードウェア時間の両方がばらばらになる可能性があります。時間が経つにつれて、これらのドリフトが蓄積し、大きな時間差が生じ、ファイルのタイムスタンプを調べるcronや「make」などのツールで問題が発生する可能性があります。
NTPサーバーのインストール方法
UbuntuシステムにNTPサーバーをインストールするには、ターミナルを開いて次のコマンドを実行します。
apt-get install ntp
インストールがスムーズに行われたことを確認するには、
を実行しますdpkg -l | grep "ntp"
出力
ii ntp 1:4.2.8p4+dfsg-3ubuntu5.8 amd64 Network Time Protocol daemon and utility programs
その後、以下のコマンドを使用してシステムを更新します
apt-get update
システムが正常に更新されたら、以下のコマンドを使用してNTPが実行されているかどうかを確認します
systemctl status ntp

NTPが正常に機能していることを確認するには、以下のコマンドを実行する必要があります
ntpq -p
このコマンドは、ntpdが接続されているNTPサーバープールを照会して表示します。
出力

ntpを使用して時計を強制的に更新する方法
場合によっては、バッテリでバックアップされたリアルタイムクロックのないシステムに遭遇し、時刻の同期が問題になることがあります。この場合、システム時刻がタイムラグなしで同期するように、クロックの更新を強制する必要がある場合があります。 ntpdate
を実行する代わりに 廃止されたコマンドについては、以下のコマンドを実行してください。
まず、NTPサービスを停止します
systemctl stop ntp
以下のコマンドを実行します
ntpd -gq
出力
-gq
オプションは、スキュー(g)に関係なく時間を修正し、すぐに終了(q)するようにNTPデーモンに指示します。

最後に、NTPサービスを開始します
systemctl start ntp
timedatectlとtimesyncdの使用
ntpdateは、以前のバージョンのUbuntuで段階的に廃止され、timedatectlが採用されました。時間ステータスを確認するには実行
timedatectl
出力
root@ip-172-31-41-251:/home/ubuntu# timedatectl status
Local time: Mon 2018-04-09 18:59:18 UTC
Universal time: Mon 2018-04-09 18:59:18 UTC
RTC time: Mon 2018-04-09 18:59:17
Time zone: Etc/UTC (UTC, +0000)
Network time on: yes
NTP synchronized: yes
RTC in local TZ: no
timedatectlとtimesyncdの時刻を取得するために使用されるネームサーバーは、/etc/systemd/timesyncd.conf
にあります。
追加の構成ファイルは、/etc/systemd/timesynd.conf.d
にあります。
システム時刻をすぐに設定するために使用できるもう1つの方法は、以下に示すようにsntpを使用することです。
sntp -s 24.56.178.140
-sフラグの後のアドレスは、NTPサーバーを表します。任意のNTPサーバーアドレスを自由に使用してください。
最後に、パニックしきい値(デフォルトでは1000秒)を無視することもできます。これは、次の方法で実行できます。
-
/etc/default/ntp
の編集 -gオプションが存在することを確認します。 -
/etc/ntp.conf
の編集tinker panic 0
を配置します 上部に
構成ファイルに変更が加えられたら、必ずntpサービスをリロードしてください。
systemctl restart ntp
NTPタイムサーバーの詳細については、NTPサイトにアクセスしてください。この記事では、UbuntuシステムでNTPサーバーを使用して時刻をインストールおよび同期し、システム時刻を正確に保つ方法について説明しました。ありがとうございました。コマンドを試して、フィードバックをお寄せください。