0

ntpdateコマンド

ntpdateコマンド

サーバの時刻同期は、各種ログの前後関係を正確に維持したり、
アプリの動作を確実なものにしたりする上で必須です。

原子時計や標準電波などの正確な時刻現を持つ上位NTPサーバに時刻を問い合わせ、
その戻り値をローカルのNTPサーバに設定する。

一時的に手動で時刻合わせをしたい時や、
cronなどのスクリプトを定期実行するサービスで時刻合わせを設定しておく時に使用する。

ntpdateコマンドには下記2つの時刻同期モードがある。
・slew モード
・step モード

❏ slewモード

システムコールにadjtimex()を利用
システム時刻の差を徐々に同期する。

❏ stepモード

システムコールにsettimeofday()を利用
NTPサーバに照会した時刻を、即座にシステム時刻に反映する。

日本国内から海外のNTPサーバーを参照すると、
通信遅延などにより十分な精度が得られない。
照会先のNTPサーバーには、利用しているISPが提供するものや国内の公開NTPサーバを利用します。

❏ オプション

-B	slewモードで強制的に時刻を修正する
-b	stepモードで強制的に時刻を修正する
-q	日付と時刻の問い合わせのみ実行する(時刻を修正しない)

❏ 個人利用が許可されている国内の公開NTPサーバー

NICT	ntp.nict.jp

❏ サーバーの内蔵時計のズレを確認するには?

ntpdate -q NTPサーバ

❏ 例

# ntpdate -q ntp.nict.jp
server 133.243.238.163, stratum 1, offset 0.124592, delay 0.02782
server 133.243.238.244, stratum 1, offset 0.124675, delay 0.02730
server 133.243.238.164, stratum 1, offset 0.124626, delay 0.02785
server 133.243.238.243, stratum 1, offset 0.124680, delay 0.02733
10 Sep 16:30:22 ntpdate[10229]: adjust time server 133.243.238.244 offset 0.124675 sec

問い合わせ上位NTPサーバーとの時刻ズレ

・500ms以上の場合

===> 「 set time server 」

という文字列がメッセージに含まれます。

・500ms以内の場合

===> 「 adjust time server 」

という文字列がメッセージに含まれます。

# service ntpd stop
ntpd を停止中:                                             [  OK  ]

#  ntpdate -b ntp.nict.jp
10 Sep 16:33:24 ntpdate[10259]: step time server 133.243.238.243 offset 0.119050 sec

# service ntpd start
ntpd を起動中:                                             [  OK  ]

上位NTPサーバとシステム時刻のズレを確認

# ntpdate -q ntp.nict.jp
server 133.243.238.163, stratum 1, offset -0.000113, delay 0.02771
server 133.243.238.244, stratum 1, offset 0.000083, delay 0.02733
server 133.243.238.243, stratum 1, offset 0.000008, delay 0.02739
server 133.243.238.164, stratum 1, offset -0.000089, delay 0.02785
10 Sep 16:50:45 ntpdate[12239]: adjust time server 133.243.238.244 offset 0.000083 sec

offset
NTPサーバーとシステム時刻のズレ(ms)

delay
NTPサーバーに接続するための推定遅延時間(ms)

なお、ntpd(NTPデーモン)が稼働している環境で実行すると、

# ntpdate -b ntp.nict.jp
10 Sep 17:24:01 ntpdate[15477]: the NTP socket is in use, exiting

と表示され同期に失敗します。
手動でのntpdate 時刻同期の際には上記のとおり、
ntpdの停止が必要です。

以上です。

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です