ntpdate で定期的に時刻合わせ (2011/08/17)

NFSサーバの時刻が遅い方にずれていってしまうため,プログラムのコンパイル時などでワーニングが出やすい状況でありました.かといって,ntpd デーモンを常時走らせて公開 ntp サーバに時刻同期するのもリソースを消費しそうな感じがします.そこで,ntpdate を cron で一日周期で実行することにしました.

Ubuntu 11.04 の場合

Debian 系では,ntpd と ntpdate はそれぞれ違うパッケージで提供されています.ここでは,ntpdate パッケージのみをインストールします.Ubuntu 11.04 の ntpdate パッケージには,コマンド ntpdate-debian が提供されています.コマンド ntpdate-debian は /etc/default/ntpdate に設定された ntp サーバに時刻同期する便利なコマンドです.まず,/etc/default/ntpdate に設定されている ntp サーバを次のように変更します.

NTPSERVERS="ntp.jst.mfeed.ad.jp ntp.nict.jp ntp.ring.gr.jp"

次に,実行可能ファイル /etc/cron.daily/ntpdate を次のように作成します.

#!/bin/sh
/usr/sbin/ntpdate-debian >/dev/null
/sbin/hwclock --systohc

ここで,実行権限を付けるのを忘れないで下さい.最初は " >/dev/null" を書かずに,/etc/cron.daily/ntpdate を実行してみて動作確認をしてみたほうが良いと思います.また,ついでに,ハードウェアクロックをシステムクロックに合わせるコマンド hwclock --systohc を実行するようにしました.また,/etc/cron.xxxx/ 以下の実行ファイル名にドット "." が含まれると cron は実行されないと思いますので,この点も注意して下さい.

CentOS 5.6 の場合

CentOS 5.6 では,ntpd と ntpdate は共に,ntp パッケージとして提供されますので,ntp パッケージをインストールします.Ubuntu 11.04 のように,ntpdate-debian コマンドは用意されていませんので,実行可能ファイル /etc/cron.daily/ntpdate 内で ntp サーバを指定します.

#!/bin/sh
/usr/sbin/ntpdate ntp.jst.mfeed.ad.jp ntp.nict.jp ntp.ring.gr.jp >/dev/null
/usr/sbin/hwclock --systohc

Ubuntu 11.04 とは hwclock コマンドのパスが異なる点に注意です.


梅原 大祐 / UMEHARA Daisuke umehara@kit.ac.jp
Last modified: 2020/05/01 15:37
Total Access Count