在《解决Linux Server时间不准确的问题》一文中,使用了crontab定期执行ntpdate来校对时间。之后恰巧某博客上的文章,提出一个观点“时钟的跃变,有时候会导致很严重的问题。许多应用程序依赖连续的时钟——毕竟,这是一项常见的假定,即,取得的时间是线性的,一些操作,例如数据库事务, 通常会地依赖这样的事实:时间不会往回跳跃。”时间的瞬变,对于crontab等对时间敏感的系统任务,也是很容易造成错乱的。

优雅的解决方案是,在机器刚开机时,执行ntpupdate直接修改系统时间,然后启动ntpd守护进程,渐进式逼近地调整系统时间,基本可以做到分毫不差。

误差小的时候,ntpd不会直接修改系统时间的,只是对时钟频率进行校正。这种方式好处是系统时间不会有跳变,不会影响像crontab这样程序的运行,缺点是校正需要一定的时间。

RHEL系统上,我们常用ntpd来完成该任务;而在Ubuntu系统里,我们则用openntpd来替代它。相对ntpd,openntpd是轻量级的网络时间协议,设置比较简单。
关于ntpd和openntpd的设置,参考以下2篇文章

1
2
NTP 時間伺服器     http://linux.vbird.org/linux_server/0440ntp.php
设定 OpenNTPD     http://wiki.debian.org.hk/w/Setup_OpenNTPD
,
Trackback

no comment untill now

Add your comment now