1. 程式人生 > >Linux--時間同步問題

Linux--時間同步問題

*************************************************************************************************************************************************************************************

系統時間跟伺服器時間密切相關,伺服器是一天24小時執行,那麼它的時間也會不斷地更新,加入時間不能做到實時的和網際網路進行更新,伺服器的時間和網際網路時間就會出現一個時間差,並且隨著時間的推移,這個時間差會越來越大。接下來看一下,如何更新Linux作業系統的時間:

      linux作業系統時間和windows不一樣,windows只有一個系統時間,只要設定OK就可以,linux作業系統時間分為系統時間和硬體時鐘(電腦上的一個硬體)。

      使用date命令來檢視當前作業系統的時間:

       

 使用hwclock命令來檢視硬體時鐘時間:

       

可以看出來,上述兩種時間是一致的,我們通過date命令來手動的指定一下系統時間,我的作業系統現在顯示的兩個時間是一致並且正確的,為了演示方便,就修改為時間點不變,日期變為8月11日;

      

再次查詢,系統的時間點已經修改了--2017-08-11 07:47:32 這個是通過手動方式設定, 是跟網際網路時間無法同步的,會有一些誤差。

     通過date命令,系統時間已經修改了,不過硬體時鐘時間並沒有改變,仍然是8月10日:

      

系統時間是從硬體時鐘獲取的,當作業系統啟動的時候,會先將硬體時鐘的時間初始化,之後,系統時間再從硬體時鐘取時間,也就是說,系統時間來自於硬體時鐘,所以當前通過date命令修改的系統時間也只是現在看到的表面現象,也由於這個命令無法同時修改硬體時鐘時間,因此,系統下次啟動的時候,系統時間會再次恢復到之前的設定。換句話說,我們只有修改了硬體時鐘時間才被認為是兩者的時間都做了修改。

      那怎麼樣修改硬體時鐘時間呢?

      先來看一下hwclock 的幫助說明:

      

  上圖中所指的兩個引數hctosys、systohc是一對意思相反的引數,

hctosys是將時間從硬體時鐘同步到系統,systohc是將時間從系統同步到硬體時間,下面我們使用systohc命令來試一下:

       

  檢視之後,現在兩者的時間已經顯示一致了,都是8月11日。

     之前已經說過了,這種手動方式指定的時間會有誤差,那怎麼和網路時間同步呢,就需要用到ntp軟體了:

     ntp Network Time Protocol 網路時間協議。主要用來同步時間。

     檢視電腦上是否安裝ntp軟體:

     

 已經安裝了,接下來如何使用ntp同步??

     

     www.pool.net.org是網際網路中標準時間伺服器,這樣就可以同步成功了,秒數幾乎沒有差別!

     

不過我之前修改的系統時間是8月11號,使用ntpdate命令同步後,時間點變了,日期卻沒改變,仍然是8月11號,可見,ntpdate命令只是同步網際網路的時間點,不同步日期。

      還有一個問題,使用ntpdate雖然可以同步時間,但是不能總是手動設定,不然隔斷時間更新會很麻煩,也容易忘記,那解決這個問題就需要用到時間守護程序了,就可以自動同步了:

      開啟ntp的一個配置檔案:

     

這幾個是時間伺服器,只要時間伺服器設定好之後,就可以實現自動同步功能。圖中顯示的就是配好的設定。

     設定好之後,將ntpd的守護程序啟動起來就可以了:

     

     

再來說一下如何設定當前時間的時區:

     

     

選擇亞洲--->中國,然後在選擇時區,設定成功!

    

       Morning!

    

*************************************************************************************************************************************************************************************