Debian9で時刻同期を設定する方法
序章
正確な計時は、最新のソフトウェア展開の重要なコンポーネントになっています。 ログが正しい順序で記録されていることを確認している場合でも、データベースの更新が正しく適用されている場合でも、非同期の時間は、エラー、データ破損、およびその他のデバッグが難しい問題を引き起こす可能性があります。
Debian 9には時刻同期が組み込まれており、デフォルトで標準のntpdタイムサーバーを使用してアクティブ化されます。 ntp
パッケージ。 この記事では、いくつかの基本的な時間関連のコマンドを確認し、ntpdがアクティブでピアに接続されていることを確認し、代替のsystemd-timesyncdネットワークタイムサービスをアクティブにする方法を学習します。
前提条件
このチュートリアルを開始する前に、このDebian 9サーバーセットアップチュートリアルで説明されているように、root以外のsudo対応ユーザーがいるDebian9サーバーが必要です。
基本的な時間コマンドのナビゲート
サーバー上の時間を見つけるための最も基本的なコマンドは次のとおりです。 date
. すべてのユーザーがこのコマンドを入力して、日付と時刻を印刷できます。
- date
OutputTue Sep 4 17:51:49 UTC 2018
上記の出力で強調表示されているように、ほとんどの場合、サーバーはデフォルトでUTCタイムゾーンになります。 UTCは協定世界時、経度0度の時間です。 ユニバーサルタイムを一貫して使用すると、インフラストラクチャが複数のタイムゾーンにまたがる場合の混乱が軽減されます。
要件が異なり、タイムゾーンを変更する必要がある場合は、 timedatectl
そうするためのコマンド。
まず、利用可能なタイムゾーンを一覧表示します。
- timedatectl list-timezones
タイムゾーンのリストが画面に印刷されます。 押すことができます SPACE
ページダウンし、 b
ページアップする。 正しいタイムゾーンを見つけたら、それをメモして、次のように入力します q
リストを終了します。
次に、タイムゾーンを次のように設定します timedatectl set-timezone
、以下で強調表示されている部分を、リストで見つけたタイムゾーンに置き換えてください。 使用する必要があります sudo
と timedatectl
この変更を行うには:
- sudo timedatectl set-timezone America/New_York
を実行して変更を確認できます date
また:
- date
OutputTue Sep 4 13:52:57 EDT 2018
タイムゾーンの省略形は、新しく選択した値を反映している必要があります。
時計を確認してタイムゾーンを設定する方法がわかったので、時刻が正しく同期されていることを確認しましょう。
ntpdのステータスの確認
デフォルトでは、Debian 9は標準のntpdサーバーを実行して、システム時刻を外部タイムサーバーのプールと同期させます。 で実行されていることを確認できます systemctl
指図:
- sudo systemctl status ntp
Output● ntp.service - LSB: Start NTP daemon
Loaded: loaded (/etc/init.d/ntp; generated; vendor preset: enabled)
Active: active (running) since Tue 2018-09-04 15:07:03 EDT; 30min ago
Docs: man:systemd-sysv-generator(8)
Process: 876 ExecStart=/etc/init.d/ntp start (code=exited, status=0/SUCCESS)
Tasks: 2 (limit: 4915)
CGroup: /system.slice/ntp.service
└─904 /usr/sbin/ntpd -p /var/run/ntpd.pid -g -u 105:109
. . .
The active (running)
statusは、ntpdが正しく起動したことを示します。 ntpdのステータスに関する詳細情報を取得するには、 ntpq
指図:
- ntpq -p
Output remote refid st t when poll reach delay offset jitter
==============================================================================
0.debian.pool.n .POOL. 16 p - 64 0 0.000 0.000 0.000
1.debian.pool.n .POOL. 16 p - 64 0 0.000 0.000 0.000
2.debian.pool.n .POOL. 16 p - 64 0 0.000 0.000 0.000
3.debian.pool.n .POOL. 16 p - 64 0 0.000 0.000 0.000
-eterna.binary.n 204.9.54.119 2 u 240 256 377 35.392 0.142 0.211
-static-96-244-9 192.168.10.254 2 u 60 256 377 10.242 1.297 2.412
+minime.fdf.net 83.157.230.212 3 u 99 256 377 24.042 0.128 0.250
*t1.time.bf1.yah 98.139.133.62 2 u 31 256 377 11.112 0.621 0.186
+x.ns.gin.ntt.ne 249.224.99.213 2 u 108 256 377 1.290 -0.073 0.132
-ord1.m-d.net 142.66.101.13 2 u 473 512 377 19.930 -1.764 0.293
ntpq
ntpdのクエリツールです。 The -p
フラグは、ntpdが接続されているNTPサーバー(または p eers)に関する情報を要求します。 出力は少し異なりますが、デフォルトのDebianプールサーバーと他のいくつかのサーバーをリストする必要があります。 ntpdが接続を確立するのに数分かかる場合があることに注意してください。
systemd-timesyncdへの切り替え
systemdの組み込みtimesyncdコンポーネントを使用してntpdを置き換えることができます。 timesyncdは、systemdとより統合されたntpdの軽量な代替手段です。 ただし、タイムサーバーとしての実行はサポートされておらず、システム時刻の同期を維持するために使用する手法は少し洗練されていないことに注意してください。 複雑なリアルタイム分散システムを実行している場合は、ntpdを使い続けることをお勧めします。
timesyncdを使用するには、最初にntpdをアンインストールする必要があります。
- sudo apt purge ntp
次に、timesyncdサービスを起動します。
- sudo systemctl start systemd-timesyncd
最後に、サービスのステータスをチェックして、実行されていることを確認します。
- sudo systemctl status systemd-timesyncd
Output● systemd-timesyncd.service - Network Time Synchronization
Loaded: loaded (/lib/systemd/system/systemd-timesyncd.service; enabled; vendor preset: enabled)
Drop-In: /lib/systemd/system/systemd-timesyncd.service.d
└─disable-with-time-daemon.conf
Active: active (running) since Tue 2018-09-04 16:14:23 EDT; 1s ago
Docs: man:systemd-timesyncd.service(8)
Main PID: 3399 (systemd-timesyn)
Status: "Synchronized to time server 198.60.22.240:123 (0.debian.pool.ntp.org)."
Tasks: 2 (limit: 4915)
CGroup: /system.slice/systemd-timesyncd.service
└─3399 /lib/systemd/systemd-timesyncd
使用できます timedatectl
systemdの現在の時間の理解を印刷するには:
- timedatectl
Output Local time: Tue 2018-09-04 16:15:34 EDT
Universal time: Tue 2018-09-04 20:15:34 UTC
RTC time: Tue 2018-09-04 20:15:33
Time zone: America/New_York (EDT, -0400)
Network time on: yes
NTP synchronized: yes
RTC in local TZ: no
これにより、現地時間、協定世界時(UTCタイムゾーンから切り替えなかった場合は現地時間と同じになる場合があります)、および一部のネットワーク時間ステータス情報が出力されます。 Network time on: yes
timesyncdが有効になっていることを意味し、 NTP synchronized: yes
時刻が正常に同期されたことを示します。
結論
この記事では、システム時刻の表示、タイムゾーンの変更、ntpdの操作、systemdのtimesyncdサービスへの切り替えの方法を説明しました。 ここで説明したものよりも高度なタイムキーピングのニーズがある場合は、公式のNTPドキュメントを参照し、グローバルグループであるNTPプールプロジェクトも参照してください。世界のNTPインフラストラクチャの多くを提供するボランティアの数。