ntpでサーバーの時計合わせ
ntpとはnetwork time protocolの略。ネットワークを使ってコンピュータの時計を正確に保つための通信方式のことだ。サーバーにntpクライアントをインストールしておけば、ntpサーバーに接続して正確な時間を取得することができる。
コンピュータの時計とはいい加減なもので、しばらく時計を合わせないままでいるとすぐに数分の狂いがでてくる。この時計をもとにログを記録したり、メールのヘッダーを作成したりするので、時計がくるったままにしておくのはまずい。
ntpの使い方
ntpの使い方は「ntpdate ntpサーバー名」とする。いたって簡単だ。ntpサーバー名はとりあえず「ntp2.jst.mfee.ad.jp」として試してみよう。
また、ntpdateで更新できるのはLinuxのシステム時刻であり、ハードウェアの時刻とは異なっている。両者に大きな違いがあるとトラブルの元となるので、システム時計を合わせたら、次はハードウェア時計をシステム時計に同期させておく。この作業には「hwclock」を使う。
# ntpdate ntp2.jst.mfeed.ad.jp Looking for host ntp2.jst.mfeed.ad.jp and service ntp host found : ntp2.jst.mfeed.ad.jp 14 Feb 12:35:20 ntpdate[24108]: adjust time server 210.173.160.57 offset -3.173238 sec # hwclock --systohc #
もし「command not found」と表示されれば、ntpがインストールされていない可能性がある。「apt-get install ntp」と入力して、ntpをインストールしよう。
利用するntpサーバーだが、もし自分の利用しているプロバイダがntpサーバーを設置しているなら、そのntpサーバーを利用する。ntpサーバーのアドレスをしらべるには、こちらの「NTP - wiki@nothing」を参照してほしい。もし、プロバイダが用意していないときは、「mfeed」のntpサーバーを使わせてもらう。
| ntp2.jst.mfeed.ad.jp |
| ntp3.jst.mfeed.ad.jp |
| ntp1.jst.mfede.ad.jp |
ntpについて解説しているサイトでは、よく福岡大学のntpサーバーが紹介されている。福岡大学は早くからntpの実験を進め、ntpサーバーを外部に公開していた。そのため、現在ではアクセスが集中してつながりにくくなり、精度もけっしてよいとは言えなくなっている。なにより福岡大学の回線に必要以上の負荷をかけることになるので、自分のプロバイダにntpサーバーがあればかならずそれを指定するようにしたい。もっとも近いntpサーバーを使うことが負荷を最小限にとどめるだけでなく、もっとも高い精度を期待できる。
ntpを自動起動する
手動でいちいち更新をするのは面倒なので、自動的に同期するように設定しよう。viで/etc/ntp.confを開き、最後に次のようにntpサーバーのアドレスを追加する。複数のntpサーバーを追加してもいいが、必ず自分に近いntpサーバーを指定しよう。
server ntp2.jst.mfeed.ad.jp server ntp3.jst.mfeed.ad.jp server ntp1.jst.mfeed.ad.jp
ファイルを保存したら、「/etc/rc.d/init.d/ntpd start」と入力してntpデーモンを起動する。また、システムを起動したときにntpデーモンも自動的に起動するようにchkconfigコマンドで設定する。
# /etc/rc.d/init.d/ntpd start ntpdを起動中: [ OK ] # chkconfig ntpd on #
しばらく時間がたったら「ntpq -p」を実行して、動作状況を確認する。下の図のようにアドレスの前に「*」が付いていたら時刻が同期されている。もし「*」が付いていなかったら30分くらいたってからもう一度確認してみよう。それでもダメならアドレスが間違っていないか、ntpデーモンが起動しているかを確認する。ntpデーモンが起動しているかどうかは「ps -C ntpd」とすればチェックできる。
# ntpq -p
remote refid st t when poll reach delay offset jitter
==============================================================================
LOCAL(0) LOCAL(0) 10 l 25 64 77 0.000 0.000 0.001
+ntp2.jst.mfeed. 210.173.160.86 2 u 89 256 17 10.929 -76.200 6.844
*ntp3.jst.mfeed. 210.173.160.86 2 u 90 256 17 9.975 -68.189 10.468
+ntp1.jst.mfeed. 210.173.160.86 2 u 89 256 17 10.263 -72.158 7.450
#
上のようにntpデーモンを起動しておけば、サーバーがntpサーバーとして動作する。つまり、LANの中のほかのパソコンで「ntpdate サーバーのIPアドレス」とすることで時刻あわせができるようになるわけだ。LANの中にたくさんのパソコンがあるときはネットワークの負荷を軽減するためにも、LANの中のサーバーを指定するといい。