インストールメモ:ntpd

2003年3月。
ドキュメントは探せば Web 上に豊富に。 というわけで手元で参照するための自分用メモ。
以下の記述中、「# 」はコマンドプロンプト。 (root になりっぱなしで作業してるもんで…)

ウソを書いてる可能性があるので注意。 間違いがありましたらご指摘くだされ。

2004-3-26 追記
なんとなく下記ではうまくいってないっぽい (部分的に) …。 参考にしない方がよいかも。 改めてちゃんと調べ / 設定し直さねば。
2004-8-26 追記:
今では “xntpd” は “ntpd” に統合 (?) され済らしい。思い出したんでメモ。

0. 用意

参考サイト: Google でキーワード「xntpd 設定」で検索して上位にヒットする各サイト

インストール対象環境はとりあえず OpenBlockSS 、他に LAN 内の Vine Linux 機。

1. インストール

xntpd を make からインストールしようと思っていたが、 HDD イメージ中に既に /usr/bin/ntpd が入っていたので、 とりあえずこいつをそのまま使うことに。 従ってインストールのメモは省略。
make からインストールする場合は基本的に ntpd アーカイブを展開したディレクトリに移動して、 「# ./configure; make; make install」で何も問題ないはず。 (当然、「# make install」は root 権限で)

2. 参照先の ntp サーバについて

インターネット上で公開されている ntp サーバのリストは、ntp.org にある。
ウチのローカルネットワークの場合、ルータに ntpd 機能がついているので、こいつをローカルネットワークの親サーバとして使えば、よそのサーバに余計な負荷をかけない。 (しかしどっちみちこのルータからは、いずれかの大手サーバを参照する必要はあるが)
国内でよく参照されている ntp サーバとしては

あたりが定番 (??) っぽい模様。 (一時あまりにも定番で使われて負荷に耐えられなくなってたりした (?) ようなので、 契約プロバイダが提供しているサーバとかのなるべくネットワーク的に近場な別サーバを探した方がよさげ)
なお、 ntp サーバの指定にはドメイン名ではなく IP アドレスを直接指定しても可。 (ていうかその方が DNS サーバへの問い合わせをしなくて済む分、動作も負荷も微妙に軽いハズ)

3. 手動で時間合わせ

とりあえず、コマンドでシステムの時間を手動であわせておく。 (root 権限で)

# ntptime [親ntpサーバ]

さらに、これをハードウェアのクロックに反映させる。 (させとかないと、マシンの再起動時にハードウェアクロックから狂ったままの時間を拾って再びシステム時間が狂ってしまうらしい。定期的にやらないで大丈夫か?)

# hwclock --systohc

4. 定期的な時間合わせの設定

方法としては、 cron で定期的に (root 権限で) ntpdate を起動させるのと、 システム起動時に ntpd デーモンを走らすのと、 2通りある。 ローカルネットワークの他マシンの親 ntp サーバとして使うためには、後者の方法をとる。 (ただ、システムリソースの足りない気味な OpenBlockSS あたりで走らせるのは負担がやや大きい可能性もあり…)

ここでは ntpd を走らせる方向で設定。

4-1. /etc/ntpd.conf の設定

    server      [NTPサーバ名またはIPアドレス]
    driftfile   /etc/ntp.drift

ntp.drift ファイルは、クロック補正のための情報を保存しておくファイル (らしい) 。 事前に「# touch /etc/ntp.drift」で作成しておく。
server は時間合わせに使いたい ntp サーバ。複数行列挙してもいい。 (しなくてもいい) 列挙する場合は 1サーバ 1行で。

4-2. 自動起動の設定

このへんはそれぞれのシステムに定番の方法で。
OpenBlockSS の場合メンドくさいので /etc/rc.d/rc.local に直書き。以下の記述を追加。

    if [ -x /usr/bin/ntpd -a -f /etc/ntp.conf ]; then
        /usr/bin/ntpd -c /etc/ntp.conf
    fi

「-x」は実行ファイル (が存在する) かどうか、「-f」はファイル (が存在する) かどうか、「-a」は条件判定の AND 。 でいいんだろうなたぶん。 OpenBlockSS なので特にメッセージを出力もせず、無言で起動させている。 (boot ログなどに残すよう何か文字列を吐いといた方がいいのかな? boot ログって参照しないしよく分からん…あとで調べよっと)

ちゃんと自動起動するか念のためリブートして確認。
コマンド「# ntpq -p」で、動作中の ntpd の設定が正しいか確認。 表示内容については「ntpdの設定」の下の方を参照…。

以上。


いっこ戻る