Voyage Linux(Debianベースのディストリビューション)を実行していますが、正確な日付がわかりません。私が見ると、/var/log/daemon.log
次の内容が表示されます。
Nov 18 11:04:07 voyage ntpdate[1676]: step time server 203.97.109.165 offset 2141299826.398106 sec
Aug 20 17:06:20 voyage ntpdate[1710]: step time server 119.47.118.129 offset 2141299826.401065 sec
Jun 28 06:36:47 voyage ntpdate[1744]: step time server 203.97.109.165 offset 2141299826.460901 sec
正確な日付は6月中旬でしたが、Nov 18 11:04:07
現在は6月中旬に変更されました。この問題をどのように解決できますか?
答え1
[非常に遅い答えですが、フォローする他の人のために追加されました。]
ntpdateが実行されるインターフェイスを制限すると便利ですが、主な問題はリアルタイムクロックハードウェアが機能しないため、初期オフセットが大きいことです。
fake_hwclockパッケージを確認してください。 ~からパッケージ指示:
パッケージ: fake-hwclock (0.5)
RTCハードウェアのないシステムでのシステムクロックの保存/復元
一部のシステムにはリアルタイムクロック(RTC)デバイスがないか、既存のハードウェア用のドライバがありません。 fake-hwclockは、カーネルの現在のクロック(終了時を含む)を定期的に保存し、ブート時にそれを復元し、システムクロックを少なくともリアルタイムに近づけるためのシンプルなスクリプトセットです。これにより、システムが1970年代に戻っていると信じられなくなり、起動するたびにファイルシステムチェックを実行する必要があるなどの問題が発生する可能性があります。
これに加えて、ハードウェアが停止または再起動するときに、偽の時計「ドリフト」を処理するためにNTPを使用することをお勧めします。
答え2
解決策が見つかりましたこのウェブサイト。 NTPdate は、インターフェイスが起動されるたびに日付を更新しようとします。私の場合、起動プロセス中に3回更新されました。そのため、立ち上がり時にのみ実行さ/etc/network/if-up.d/ntpdate
れるように修正し、スクリプトの上部に以下を追加しました。ntpdate
eth0
# Only update the date if eth0 goes up.
if [ "$IFACE" != eth0 ]; then
exit 0
fi