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

來源:互聯網
上載者:User

1.       系統時間變化原因分析

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,按照命令提示進行即可。

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.