歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
Linux教程網 >> Linux基礎 >> 關於Linux >> Linux系統時間重啟後變化原因

Linux系統時間重啟後變化原因

日期:2017/3/1 16:21:21   编辑:關於Linux

系統時間變化原因分析
Linux的時間有兩種,一是系統時間,另外是硬件時間(BIOS時間)。
系統每次啟動時會讀出BIOS時間,將之賦給系統時間。之後系統時間將獨立運行,而BIOS時間不會變化。


在BIOS時間中,有兩種表示形式。一種是以localtime表示的,一種是以UTC表示的。具體查看的方式可以通過hwclock –debug,該命令可以輸出當前硬件時間的表示形式。


下面例舉各種情況下系統時間的變化:
1.當hwclock設定為localtime,/etc/sysconf/clock 中的 UTC=true時,重啟後系統時間後相對於BIOS時間被提前8個小時。
2.當hwclock設定為localtime,/etc/sysconf/clock中的 UTC=false時,重啟後系統時間相對於BIOS時間沒有變化
3.當hwclock設定為UTC,/etc/sysconf/clock 中的 UTC=true時,重啟後系統時間後相對於BIOS時間無變化
4.當hwclock設定為UTC,/etc/sysconf/clock 中的 UTC=false時,重啟後系統時間後相對於BIOS時間被推後8個小時。
如下圖所示:

/etc/sysconf/clock中UTC=true
/etc/sysconf/clock中UTC=false
硬件時間 localtime
重啟後系統時間後相對於BIOS時間被提前8個小時
系統時間無變化
硬件時間 UTC
系統時間無變化
重啟後系統時間後相對於BIOS時間被推後8個小時

可見,當BIOS時間設置的類型和 /etc/sysconf/clock中的設置不一致時,就會導致系統啟動時的系統時間錯誤。


如果有腳本實現時間同步,但是系統啟動之後運行的。雖然時間同步可以將系統時間同步到正確時間,但是由於之前的系統時間錯誤設定,將會出現一個錯誤的時間間隔,這個時間間隔可能會對依賴系統時間的程序產生影響。
對策:出現這種問題的根本原因是硬件時間的類型和 /etc/sysconf/clock中的設置不一致。所以我們將在時間同步腳本中增加對硬件時間的同步,這樣可以解決這種問題。
注:
UTC時間:世界協調時間(Universal Time Coordinated,UTC) ,也就是0時區的時間
CST時間:CST China Standard Time UTC+8:00 中國沿海時間(北京時間),這是我們所屬時區的localtime。






2.關於時區的設置:
為保證時間的正確,應該把時區設置正確。設置正確僅是為了使得時間更好理解和其他方面的維護。


設置方法:
1.
手動設置時區:
例如:設置東八區的時間


ln -sf /usr/share/zoneinfo/Asia/Shanghai
/etc/localtime


編輯/etc/sysconfig/clock中 ZONE="Asia/Shanghai"


2.

使用圖形化命令設置
system-config-date (大部分情況僅限於RedHat和CentOS)或者使用 tzselect,按照命令提示進行即可。


本文摘自 wdlinux論壇http://www.wdlinux.cn/bbs/,轉載請注明!


Copyright © Linux教程網 All Rights Reserved