Ubuntu20.04で時刻同期を設定する方法

提供:Dev Guides
移動先:案内検索

序章

正確な計時は、最新のソフトウェア展開に不可欠です。 これがないと、データの破損、エラー、およびデバッグが困難なその他の問題が発生する可能性があります。 時間の同期は、ログが正しい順序で記録されていること、およびデータベースの更新が適切に適用されていることを確認するのに役立ちます。

幸い、Ubuntu 20.04には時刻同期が組み込まれており、systemdtimesyncdサービスを使用してデフォルトでアクティブ化されます。 この記事では、いくつかの一般的な時間関連のコマンドを練習し、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でタイムゾーンを設定できます。 この変更を行うには、sudotimedatectlを使用する必要があります。

sudo timedatectl set-timezone America/New_York

dateを再度実行すると、変更を確認できます。

date
OutputThu Aug 5 11:56:01 EDT 2021

タイムゾーンの省略形は、新しく選択された値を反映します。

時計の確認とタイムゾーンの設定を練習したので、次のセクションで時刻が正しく同期されていることを確認できます。

timedatectltimesyncdを制御する

以前は、ほとんどのネットワーク時間同期はネットワークタイムプロトコルデーモンまたは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: activetimesyncdが稼働中であることを意味します。

出力に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インフラストラクチャの多くを提供するボランティアのグローバルグループです。 。