序章
正確な計時は、最新のソフトウェア展開に不可欠です。 これがないと、データの破損、エラー、およびデバッグが困難なその他の問題が発生する可能性があります。 時間の同期は、ログが正しい順序で記録されていること、およびデータベースの更新が適切に適用されていることを確認するのに役立ちます。
幸い、Ubuntu 20.04には時刻同期が組み込まれており、systemd
のtimesyncd
サービスを使用してデフォルトでアクティブ化されます。 この記事では、いくつかの一般的な時間関連のコマンドを練習し、timesyncd
がアクティブであることを確認し、代替のネットワークタイムサービスをインストールします。
前提条件
このチュートリアルを開始する前に、このUbuntu 20.04サーバーセットアップチュートリアルで説明されているように、root以外のsudo対応ユーザーとファイアウォールを備えたUbuntu20.04サーバーが必要です。
基本的な時間コマンドのナビゲート
サーバーの時刻を表示するには、コマンドdate
を使用します。 すべてのユーザーがこのコマンドを実行して、日付と時刻を印刷できます。
- date
通常、サーバーはデフォルトのUTCタイムゾーンで出力を生成します。
OutputThu Aug 5 15:55:20 UTC 2021
UTCは協定世界時、経度0度の時間です。 これは現在のタイムゾーンを反映していない場合がありますが、ユニバーサルタイムを使用すると、インフラストラクチャが複数のタイムゾーンにまたがる場合の混乱を防ぐことができます。
ただし、タイムゾーンを変更する場合は、timedatectl
コマンドを使用できます。
まず、次のコマンドを実行して、使用可能なタイムゾーンのリストを生成します。
- timedatectl list-timezones
タイムゾーンのリストが画面に印刷されます。 SPACE
を押すとページダウンし、b
を押すとページアップできます。 正しいタイムゾーンを見つけたら、それをメモし、q
と入力してリストを終了します。
次に、強調表示された部分をリストで見つけたタイムゾーンに置き換えることにより、timedatectl set-timezone
でタイムゾーンを設定できます。 この変更を行うには、sudo
とtimedatectl
を使用する必要があります。
- sudo timedatectl set-timezone America/New_York
date
を再度実行すると、変更を確認できます。
- date
OutputThu Aug 5 11:56:01 EDT 2021
タイムゾーンの省略形は、新しく選択された値を反映します。
時計の確認とタイムゾーンの設定を練習したので、次のセクションで時刻が正しく同期されていることを確認できます。
timedatectl
でtimesyncd
を制御する
以前は、ほとんどのネットワーク時間同期はネットワークタイムプロトコルデーモンまたはntpd
によって処理されていました。 このサービスは、他のNTPサーバーのプールに接続して、一定の正確な時刻更新を提供します。
しかし、Ubuntuのデフォルトのインストールでは、ntpd
の代わりにtimesyncd
を使用できます。 timesyncd
は、同じタイムサーバーに接続することで同様に機能しますが、軽量で、Ubuntuのsystemd
とより緊密に統合されています。
引数なしでtimedatectl
を実行すると、timesyncd
のステータスを照会できます。 この場合、sudo
を使用する必要はありません。
- timedatectl
Output
Local time: Thu 2021-08-05 11:56:40 EDT
Universal time: Thu 2021-08-05 15:56:40 UTC
RTC time: Thu 2021-08-05 15:56:41
Time zone: America/New_York (EDT, -0400)
System clock synchronized: yes
NTP service: active
RTC in local TZ: no
このコマンドは、現地時間、ユニバーサル時間(UTCタイムゾーンから切り替えなかった場合は現地時間と同じになる場合があります)、およびいくつかのネットワーク時間ステータス情報を出力します。 System clock synchronized: yes
は時刻が正常に同期されたことを反映し、NTP service: active
はtimesyncd
が稼働中であることを意味します。
出力にNTPサービスがアクティブでないことが示されている場合は、timedatectl
でオンにします。
- sudo timedatectl set-ntp on
その後、再度timedatectl
を実行して、ネットワークタイムの状態を確認してください。 同期が行われるまで1分かかる場合がありますが、最終的にSystem clock synchronized:
はyes
と表示され、NTP service:
はactive
と表示されます。
ntpd
に切り替えます
timesyncd
はほとんどの状況で機能します。 ただし、アプリケーションが時間の経過に伴う障害に敏感な場合があります。 この場合、ntpd
は使用できる代替のネットワークタイムサービスです。 ntpd
は、高度な技術を使用して、システム時間を常に順調に維持します。
ntpd
をインストールする前に、2つのサービスが互いに競合しないように、timesyncd
をオフにする必要があります。 これを行うには、次のコマンドを使用してネットワーク時刻の同期を無効にします。
- sudo timedatectl set-ntp no
時間同期が無効になっていることを確認します。
- timedatectl
出力がNTP service: inactive
であることを確認します。 これは、timesyncd
が停止したことを意味します。 これで、ntp
パッケージをapt
とともにインストールする準備が整いました。
まず、apt update
を実行して、ローカルパッケージインデックスを更新します。
- sudo apt update
次に、apt install ntp
を実行して、このパッケージをインストールします。
- sudo apt install ntp
ntpd
は、インストールが完了すると自動的に開始されます。 ntpd
にステータス情報を問い合わせることで、すべてが正しく機能していることを確認できます。
- ntpq -p
Output remote refid st t when poll reach delay offset jitter
==============================================================================
0.ubuntu.pool.n .POOL. 16 p - 64 0 0.000 0.000 0.000
1.ubuntu.pool.n .POOL. 16 p - 64 0 0.000 0.000 0.000
2.ubuntu.pool.n .POOL. 16 p - 64 0 0.000 0.000 0.000
3.ubuntu.pool.n .POOL. 16 p - 64 0 0.000 0.000 0.000
ntp.ubuntu.com .POOL. 16 p - 64 0 0.000 0.000 0.000
+t1.time.bf1.yah 129.6.15.28 2 u 16 64 1 61.766 -20.068 1.964
+puppet.kenyonra 80.72.67.48 3 u 16 64 1 2.622 -18.407 2.407
*ntp3.your.org .GPS. 1 u 15 64 1 50.303 -17.499 2.708
+time.cloudflare 10.4.1.175 3 u 15 64 1 1.488 -18.295 2.670
+mis.wci.com 216.218.254.202 2 u 15 64 1 21.527 -18.377 2.414
+ipv4.ntp1.rbaum 69.89.207.99 2 u 12 64 1 49.741 -17.897 3.417
+time.cloudflare 10.4.1.175 3 u 15 64 1 1.039 -16.692 3.378
+108.61.73.243 129.6.15.29 2 u 14 64 1 70.060 -16.993 3.363
+ny-time.gofile. 129.6.15.28 2 u 21 64 1 75.349 -18.333 2.763
golem.canonical 17.253.34.123 2 u 28 64 1 134.482 -21.655 0.000
ntp3.junkemailf 216.218.254.202 2 u 19 64 1 2.632 -16.330 4.387
clock.xmission. .XMIS. 1 u 18 64 1 24.927 -16.712 3.415
alphyn.canonica 142.3.100.2 2 u 26 64 1 73.612 -19.371 0.000
strongbad.voice 192.5.41.209 2 u 17 64 1 70.766 -18.159 3.481
chilipepper.can 17.253.34.123 2 u 25 64 1 134.982 -19.848 0.000
pugot.canonical 145.238.203.14 2 u 28 64 1 135.694 -21.075 0.000
ntpq
は、ntpd
のクエリツールです。 -p
フラグは、ntpd
が接続されているNTPサーバー(または p eers)に関する情報を要求します。 出力は少し異なりますが、デフォルトのUbuntuプールサーバーと他のいくつかのサーバーが一覧表示されます。 ntpd
が接続を確立するのに数分かかる場合があることを忘れないでください。
結論
この記事では、システム時刻を正常に表示し、タイムゾーンを変更し、Ubuntuのデフォルトのtimesyncd
サービスを使用して、ntpd
をインストールしました。 高度なタイムキーピングのニーズがある場合は、公式のNTPドキュメントを参照できます。また、NTPプールプロジェクトもご覧ください。これは世界のNTPインフラストラクチャの多くを提供するボランティアのグローバルグループです。 。