一直以来都是使用 date 命令设置Linux服务器的系统时间,向来也没发现有什么问题。前几天突然有一台服务器重启之后系统时间直接跳回几个月前,实在是诡异。

在Windows下,设置了系统时间之后会自动同步更新CMOS时钟时间。Linux却是将时钟分为系统时钟(System Clock)和硬件(Real Time Clock,简称RTC)时钟。系统时间是指当前Linux Kernel中的时钟,而硬件时钟则是主板上由电池供电的主板硬件时钟。这两个时钟互不影响异步运行,据说在Linux系统启动过程中这两个时钟并不会发生冲突,以前用过无数台服务器也没碰到过这种事情;偏偏这次系统时间就是在重启之后被重置成了硬件时钟的时间。不知道是不是跟ntpd有些干系。

所以现在除了使用ntpd同步系统时间外,再加一个定时执行 clock --systohc 把系统时间同步更新到硬件时钟。

 

检查了一下/etc/sysconfig/ntpd,果然出问题的服务器配置里面有一行 SYNC_HWCLOCK=no 怪不得硬件时钟没有被同步更新。再看其他的服务器配置文件里面都没有这一行,估计缺省就自动同步更新了。不知道是不是因为这台机器的ntp是用yum install的缘故。。

Logo

更多推荐