1. 程式人生 > >Linux中系統時間和RTC時間的關係

Linux中系統時間和RTC時間的關係

RTC(Real-Time Clock),翻譯過來是實時時鐘晶片,具體就不再往下解釋了,有興趣的就直接百度搜索下吧。
對於一臺安裝了作業系統的伺服器來說,作業系統和伺服器硬體本身都在記錄和更新當前的時間,也就是說系統時間和RTC時間是兩套獨立的計時機制,但它們之間又是相互依存的:

1)初次安裝作業系統後,若在安裝過程不設定系統時間,那麼預設的系統時間則是從伺服器的RTC中獲取當前的硬體時間;
2)在作業系統中修改系統時間後,在重啟或關閉Linux系統時,OS通常會將系統時間更新到RTC;
3)在作業系統再次啟動的時候,Linux OS則會再次從RTC中獲取當前的時間。

簡單的說就是——RTC時間才是真正持續更新,而作業系統則是隻有在系統啟動以後才會持續更新,在作業系統關閉或重啟期間,甚至伺服器下電期間,整個伺服器的時間就依賴於RTC了。

上面的解釋有點繞口,那麼,這個現象就要特別留意了:

伺服器異常下電後,待作業系統重新啟動後,發現系統時間發生了跳變?

其原因通常是:修改了作業系統時間,在伺服器異常下電後,作業系統並未及時將修改後的時間更新到RTC,導致OS重新啟動後,就從RTC中載入了之前“老”的時間,從而在作業系統層面體現為“時間跳變”。

對於這個現象,其策略是:當我們每次在作業系統上使用date命令修改系統時間後,請務必記得執行以下命令,將系統時間重新整理至RTC:

# hwclock –systohc