さわみです。 From: 深海水草 <VYG01106@xxxxxxxxx> Subject: [vine-users:070538] Re: 時刻合わせはどうしていますか?(ntpdate がみつからない) Date: Mon, 21 Feb 2005 15:56:48 +0900 Message-ID: <20050221154743.25F2.VYG01106@xxxxxxxxx> > > 大昔には、ntpdate を cron で動かすというのもありました > > 大昔!?なんですか? Web では結構紹介されているみたいなんで > すけど...。ちょっと google で引っかけただけで10件はありま > した。 昔、xntpd がメジャーだった頃は 10 分もずれると daemon が落ちたも のでした。ntp-4.x ベースになってからは、日付がずれていてもきっち りと合わせてくれます。 なもんで、xntpd が落ちていたら ntpdate で合わせて xntpd を起動し 直すようなスクリプトを書いて、cron で回してたりしていました。 せっかくなので、FYI として。 以下、i386 の話です。 kernel source の arch/i386/kernel/time.c を読むと分かりますが、外 部ソースとクロックの同期を取っている場合、kernel が 11 分おきにシ ステムクロックを CMOS クロックに反映させています。 ntpdate で時刻を合わせる場合、ntpdate 実行後に hwclock で CMOS に 書き込んでやらないとハードウェアクロックがずれたままになりますが、 ntpd で時刻合わせをすればそのような必要がなくなります。 この機能は set_rtc_mmss で提供されていますが、システムクロックの 分・秒と CMOS クロックの分・秒の差の絶対値が 30 分を超えると、 set_rtc_mmss: can't update from (CMOS_clock) to (system_clock) というメッセージをログに吐いて、(その時だけ)実行されません。 # 「分・秒の差の絶対値」というところがミソです。 # 条件によってはズレが 1sec の場合でも再現します。 -- SAWAMI Hiroaki (沢味 広明) hiro-s@xxxxxxxxxxxxxx hiro@xxxxxxxxxxxxx