2012年10月4日木曜日

ntpdate と ntp daemon on Ubuntu

Ubuntu 12.04.1 LTS で ntp daemon をインストールした。

Ubuntu では標準で ntpdate がインストールされている。

両者の違いは以下のような感じと思っている。

・ntpdate
実行したときにワンショットで、すぐにサーバーの時刻と同期。

・ntp daemon
起動してもすぐには同期しない。
長期的にずれないようにうまく保ってくれるもの。どういうアルゴリズムなのかはよく知らない。


デフォルトでは、ネットワークがつながった時に
/etc/network/if-up.d/ntpdate から
/usr/sbin/ntpdate-debian
が自動実行されるようになっていると思っている(たぶん)。

ntpdate-debian は簡単なシェルスクリプトなので、中身見てみると、
/etc/default/ntpdate
を設定にして、ntpdate を実行しているようだ。

サーバー名はデフォルトで

NTPSERVERS="ntp.ubuntu.com"

を見るようだ。

会社などプロキシなどの問題がある場合、NTPSERVERSのところを会社指定のntpサーバに書きかえれば、同期してくれるようになった。


ntp daemon はデフォルトで入っていないので、

$ sudo apt-get install ntp
でインストールする必要がある。

/etc/ntp.conf が設定ファイルなので
server のところを必要に応じて書き換える。


ところで、ntpdate と ntp daemon が両方入っていたらどうなるんでしょう。。

ntp daemon がすでに起動しているときに、ntpdate を実行しようとすると
the NTP socket is in use, exiting
とエラーが出て、実行できない。

一方、
システムツール -> システム設定 -> 日付と時刻
で「ネットワーク時刻」をオフからオンに切り替えたときや、
新たにネットワークがつながったときは、
ntp daemon が NTP socket をつかむ前に ntpdate が実行されるように見えます。
よって、ntpdate が最初にガツンと合わせ、その後は ntp daemon がずれないように維持してくれるように見えました。

0 件のコメント:

コメントを投稿