首页 > 代码库 > Linux中系统时间和RTC时间的关系

Linux中系统时间和RTC时间的关系

摘自:http://www.yunweipai.com/archives/208.html?utm_source=tuicool&utm_medium=referral

Linux中系统时间和RTC时间的关系

2012-08-12 09:08 阅读 4.4k 评论 0

2017年Gdevops全球敏捷运维峰会-成都站(限时优惠),运维派作为本次峰会协办方,您可以点击这里了解详情

RTC(Real-Time Clock),翻译过来是实时时钟芯片,具体就不再往下解释了,有兴趣的就直接百度搜索下吧。
对于一台安装了操作系统的服务器来说,操作系统和服务器硬件本身都在记录和更新当前的时间,也就是说系统时间和RTC时间是两套独立的计时机制,但它们之间又是相互依存的:

1)初次安装操作系统后,若在安装过程不设置系统时间,那么默认的系统时间则是从服务器的RTC中获取当前的硬件时间;
2)在操作系统中修改系统时间后,在重启或关闭Linux系统时,OS通常会将系统时间更新到RTC;
3)在操作系统再次启动的时候,Linux OS则会再次从RTC中获取当前的时间。

 

简单的说就是——RTC时间才是真正持续更新,而操作系统则是只有在系统启动以后才会持续更新,在操作系统关闭或重启期间,甚至服务器下电期间,整个服务器的时间就依赖于RTC了。

上面的解释有点绕口,那么,这个现象就要特别留意了:

服务器异常下电后,待操作系统重新启动后,发现系统时间发生了跳变?

其原因通常是:修改了操作系统时间,在服务器异常下电后,操作系统并未及时将修改后的时间更新到RTC,导致OS重新启动后,就从RTC中加载了之前“老”的时间,从而在操作系统层面体现为“时间跳变”。

对于这个现象,其策略是:当我们每次在操作系统上使用date命令修改系统时间后,请务必记得执行以下命令,将系统时间刷新至RTC:

# hwclock –systohc

Linux中系统时间和RTC时间的关系