WindowsXPには、パソコンの時間を定期的に合わせる機能がある。LinuxではNTPをインストールすれば、ntpdateというコマンドでインターネット上に公開されている任意のタイムサーバ(NTPサーバ)から時刻を取得し、時間を合わせることができる。
ntpdateコマンドを使い、任意のNTPサーバから時間を合わせるには、次のように行う。
# /usr/local/bin/ntpdate -b NTPサーバのホスト名又はIPアドレス 例えばNTPサーバにclock.nc.fukuoka-u.ac.jpを指定する場合、次のようになる。
# /usr/local/bin/ntpdate -b clock.nc.fukuoka-u.ac.jp
23 Jan 17:47:19 ntpdate[10054]: step time server 133.100.9.2offset -0.001386 secoffsetの値が、指定したNTPサーバとの時間のずれ(秒単位)をあらわす。この例ではずれはほとんどないことが分かる。
ntpdateを実行したときにエラーが発生した場合、以下の3パターンが考えられる(指定したNTPサーバのアドレスは正しいものとする)。
- NTPがインストールされていない
- ntpdが起動済みである
- port123が空いていない
このうち、2の場合は次のように対応する。
- ps axを実行し、ntpdを探す
- 見つかれば、killコマンドで殺す
- 再度、ntpdateコマンドを実行する
ntpdについては別のページで解説する。
実は、パソコンは2つの時計を持っている。OSが管理する時計と、BIOSが持つ時計である。ntpdateコマンドを用いて外部NTPサーバから時刻を取得し、正しい時刻にすることは可能だが、そのままではBIOSの時間は変わらない。
BIOSの時間をOSの時間に合わせるには、次のコマンドを発行する。
# clock -w ntpdateコマンドで時刻を取得したら、clockコマンドでBIOSの時間もあわせておくのが良いだろう。
cronを使えば、一定の間隔で時間合わせを行うことができる。方法は次の通り。
1.シェルスクリプトを作成する
crontabで実行するシェルスクリプトを作成する(例、/root/ntp.sh)。
# vi /root/ntp.sh 以下を入力し、保存。
/usr/local/bin/ntpdate -s clock.nc.fukuoka-u.ac.jp
/sbin/clock -w保存したら、実行権を付ける。
# chmod 755 /root/ntp.sh 2.cronの設定を行う
crontabのエディタを起動する。
# crontab -e 例えば毎日午前4時に/root/ntp.shを実行する場合、次のように入力して保存する。
0 4 * * * /root/ntp.sh > /dev/null 2>&1