Linux時間設定系統時間、硬體時間和時間服務

專注的阿熊發表於2020-01-09

Linux有兩個時間,一個是系統時間,一個是RTC時間(也叫硬體時間)。


Linux系統啟動時,會自動獲取硬體時間,設定為系統時間。




一、查詢系統時間:


查詢系統時間:date

查詢/設定硬體時間:

       hwclock –r        顯示硬體時鐘與日期


       hwclock –s        將系統時鐘調整為與目前的硬體時鐘一致。


       hwclock –w       將硬體時鐘調整為與目前的系統時鐘一致

 


二、同步時間


        可以使用ntpdate命令,也可以使用ntpd服務。


 


ntpdate:

        使用ntpdate比較簡單。格式如下:


        [root@linux ~]#ntpdate 192.168.0.2


        [root@linux ~]#ntpdate time.ntp.org

         匯率計算

        但這樣的同步,只是強制性的將系統時間設定為ntp伺服器時間。如果cpu tick有問題,只是治標不治本。所以,一般配合cron命令,來進行定期同步設定。比如,在crontab中新增:


0 12 * * * * /usr/sbin/ntpdate192.168.0.1


        這樣,會在每天的12點整,同步一次時間。ntp伺服器為192.168.0.1。


 


ntpd服務

        使用ntpd服務,要好於ntpdate加cron的組合。因為,ntpdate同步時間,會造成時間的跳躍,對一些依賴時間的程式和服務會造成影響。比如sleep,timer等。而且,ntpd服務可以在修正時間的同時,修正cpu tick。理想的做法為,在開機的時候,使用ntpdate強制同步時間,在其他時候使用ntpd服務來同步時間。


 


三、NTP客戶端同步間隔


        NTP服務會間隔多長時間想時鐘伺服器請求一次時鐘同步呢?預設最小時間間隔為64s,預設最大時間間隔是1024s(17分鐘左右)。64s是比較合理的,預設間隔也是可調的


 


四、ntpd容忍誤差範圍


        要注意的是,ntpd有一個自我保護設定: 如果本機與上源時間相差太大(>1000s), NTP服務就會認為是人為調整了時鐘或出現了硬體故障,例如CMOS電池損壞等。此時,NTP服務就會退出,需要人工(ntpdate …)進行時鐘同步。所以新設定的時間伺服器一定要先ntpdate從上源取得時間初值, 然後啟動ntpd服務。ntpd服務執行後, 先是每64秒與上源伺服器同步一次, 根據每次同步時測得的誤差值經複雜計算逐步調整自己的時間, 隨著誤差減小, 逐步增加同步的間隔. 每次跳動, 都會重複這個調整的過程.

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/69946337/viewspace-2672690/,如需轉載,請註明出處,否則將追究法律責任。

相關文章