NTPで時計合わせ
今までノートPCでは気付いたときにrootになってntpdateで ntpdate ntp2.jst.mfeed.ad.jp
とかやってた.ノートなのでよくオフラインになっているのだが,そのときにntpdからクエリを飛ばすと文句を垂れるんじゃないかと思っていたせいだ.しかしオフライン時にも適当にごまかす機能があると分かったので今度からntpdで自動化する.しかもこちらの方が時間合わせが滑らかだったり色々優れている.というわけで /etc/ntp.conf
を次のようにした.
server ntp.example.com prefer minpoll 10 # 本当は大学のNTP鯖 server ntp2.jst.mfeed.ad.jp minpoll 10 server ntp3.jst.mfeed.ad.jp minpoll 10 server ntp1.jst.mfeed.ad.jp minpoll 10 server ntp02.example.net minpoll 10 # 本当はプロヴァイダのNTP鯖 server ntp03.example.net minpoll 10 # 本当はプロヴァイダのNTP鯖 server ntp01.example.net minpoll 10 # 本当はプロヴァイダのNTP鯖 server 127.127.1.0 minpoll 10 # local clock fudge 127.127.1.0 stratum 10 driftfile /etc/ntp/drift
server
は3つ以上指定しておくと何かのアルゴリズムで調整が働くんだとか.今回のキモは 127.127.1.0
の辺りで,こう書くと(本当は意味のないIPアドレ スだが)ntpdはローカル時計を参照する仕様になっている. stratum 10
とすることで他の鯖が利用できるならば無視されるようにした.なお,どうでもいい個人のノートPCなので minpoll 10
としてクエリを投げる間隔を最短でも秒すなわち17分に設定し,鯖に負担をかけないようにした.
その後 ntpd を /etc/init.d/ntpd restart
により再起動.10秒程経って ntpq -p
とすると鯖一覧が表示されるが, when
欄が12とかになっていたら設定がきちんと認識されている(12秒前に問い合わせが終了した,等の意).上手くいっていたらさらに数時間後に ntpq -p
して同期具合を確認.行頭に +
の付いた鯖が調整アルゴリズムに従って利用中のもので, *
の付いた鯖とは完全に同期している(ころころ変わるけど).
さてこんなこともあり,UTMCの鯖(前からntpdが動いていた)の設定も改善しようと思ってやはり次のようにしてみた(↑とはログ周りが微妙に違うけど大したことではない).
# /etc/ntp.conf, configuration for xntpd # ntpd will use syslog() if logfile is not defined logfile /var/log/ntpd driftfile /var/lib/ntp/ntp.drift statsdir /var/log/ntpstats/ statistics loopstats peerstats clockstats filegen loopstats file loopstats type day enable filegen peerstats file peerstats type day enable filegen clockstats file clockstats type day enable server ntp.example.com prefer minpoll 10 # 本当は大学のNTP鯖 server ntp2.jst.mfeed.ad.jp minpoll 10 server ntp3.jst.mfeed.ad.jp minpoll 10 server ntp1.jst.mfeed.ad.jp minpoll 10 server ntp.example.net minpoll 10 # 本当はプロヴァイダのNTP鯖 server 127.127.1.0 # local clock fudge 127.127.1.0 stratum 10 # very low priority
ところがローカル時計が認識されない. /var/log/ntpd
には再起動の際に次のような行が書き込まれていた.
12 Feb 05:45:59 ntpd[27700]: attempt to configure invalid address 127.127.1.0
UTMCの鯖はDebian Woodyで, dpkg -s ntp
すると Version: 1:4.1.0-8
だそうだが... 何で? "invalid adress 127.127" とかググっても「対応してないんじゃねぇの?」くらいしか出て来ない.しかも役立ちそうなレスがちょうど鯖移管のゴタゴタで消えていたらしくてがっかり.ntp-doc
というパッケージに入っていたHTMLマニュアルには普通に載ってたんだが... まぁ常時オンラインだからいいか,とコメントアウトしておく.