FreeBSDサーバーの時計調整に ntpd を使っており、昨年末サーバーをビルドした時に
「leapsecond file (‘/var/db/ntpd.leap-seconds.list’): expired less than 206 days ago」
というメッセージが出ていて、それを修正するためのメモを残しました。
ntpd.leap-seconds.list には有効期限があるので、約半年おきに更新が必要です。
FreeBSD10.3の場合、有効期限まで1ヶ月となると、/var/log/messages に次のように警告が表示されます。
「leapsecond file (‘/var/db/ntpd.leap-seconds.list’): will expire in less than 28 days」
私は、そろそろだと思って、上記リンクのメモにあるとおり、このメッセージに気づく度に、
/etc/rc.d/ntpd fetch
と、コマンドを発行したものの、ファイルの更新無し。そして毎日残りの日数が減って行き、とうとう期限切れとなり、期限が切れてからの日数がカウントアップされるようになってしまいました。
leapsecond file ('/var/db/ntpd.leap-seconds.list'): expired less than 1 day ago
このメッセージが出るからといってOSやサーバーには何の影響もありません。パソコンの時計が一時的に1秒狂ったって問題ないでしょ。只単に、メッセージが表示されているということは自分が構築したシステムの設定がちゃんと行われていない気がして、嫌な気分になります。実際、外に置いているサーバーを世話してくれている人から、「ディスプレイにこんなメッセージが出ているけど良いの?」と質問がありました。そう、コンソールにも表示されているんです。
その後も、気が付く度に ntpd fetch コマンドを発行したものの、状況に変化無し。閏秒の予定がないので leap-seconds ファイルを更新していないのかな〜?と思っていました。
そして、先日、FreeBSD11 を久しぶりに触る必要が発生しました。
インストールしたばかりの FreeBSD11 でも同様に leapsecond file expired となるので、試しに ntpd fetch を試してみたところ、あら不思議、あっさりファイルが更新されました。
leapsecond ファイル更新されているではないか!
今頃更新されたの?と思いながら、このサーバーでも再び、
/etc/rc.d/ntpd fetch
と行ってみたものの、leapsecondファイルに変化無し・・・・・なぜ???
ひょっとして、FreeBSD10.3では、旧 ntpd.leap-seconds.list ファイルがあると駄目なの?
ntpd.leap-seconds.list を削除して、/etc/rc.d/ntpd fetch とやってみるとファイルが新しくなりました。
root wheel 10408 3月 21 04:00 ntpd.leap-seconds.list
そして、ntpd を再起動してみると、
Sep 18 11:04:17 server ntpd[71084]: leapsecond file ('/var/db/ntpd.leap-seconds.list'): good hash signature
Sep 18 11:04:17 server ntpd[71084]: leapsecond file ('/var/db/ntpd.leap-seconds.list'): loaded, expire=2017-12-28T00:00:00Z last=2017-01-01T00:00:00Z ofs=37
とメッセージが記録され、期限切れという表示はなくなりました。
前回の時は、旧ファイルを消さなくても良かったのですけど、今回は旧ファイルを消した後で更新をかける必要がありました。
次回は、今年(2017年)の年末に更新する必要があります。