我从昨天(7月30日)在/ var / log / syslog中得到了以下内容,
Dec 16 22:54:05 omap ntpdate[432]: step time server 91.189.94.4 offset 12052648.821465 sec
ntpdate 91.189.94.4从7月30日到12月16日“更正了”我的时钟! 根据http://www.pool.ntp.org/scores/91.189.94.4 ,该服务器没有超过2ms。
现在,我确实有一个脚本,在系统启动时调用date命令来设置时钟精度为〜1s。 从本地networking读取粗时间,并调用date来设置时间。 由于系统没有实时时钟,因此我必须沿着这些线路做一些事情,而且NTP可能无法连接互联网。
我不确定Linux在没有可用时钟的情况下如何猜测初始时间,但我发现它可能是非常错误的(这是合理的)。 我唯一想到的是:
ntpdate开始与NTP服务器通话,确定3月15日与真实date的比较错误 ntpdate确定时钟是12052648s慢,并加上更正,假设时钟仍在3月15日 坦率地说,我不太了解NTP的工作原理。 以上是否合理? 难道还有另一种解释吗?
不知道更多关于你的设置,你的理论听起来似乎是合理的。
您需要更改启动脚本,以确保在ntpdate启动之前设置系统date的date命令已完成。
我不确定你的时钟是如何进入它的状态的,但是我可以build议你如果可能的话删除调用date命令的脚本吗?
在我工作的大多数系统上,启动系统时钟的常用方法是:
-g启动ntpd以同步时钟。 -g是一个新的选项,可以让ntpd在任何时候使用时钟 – 如果你的ntpd版本不支持这个fkag,你可以在启动NTP守护进程之前运行ntpdate -b some.time.server
如果你的系统太老了,以至于它做的事情完全不同于它,它可能也太老了,它不被支持,所以我不会有任何关于改变启动脚本更加理智的问题…
你为什么不使用ntpd?
ntpd在确保你的时钟是正确的比ntpdate更有效率,因为它将更新caching到较小的变化中,以避免对系统造成任何冲击。
而且它绝对不会意外地将您的时钟更改为不同的月份!
我会给出更精确的指导,说明如何在系统上安装和启用ntpd,但是你没有指定你的发行版。