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是一對意思相反的引數,
檢視之後,現在兩者的時間已經顯示一致了,都是8月11日。
之前已經說過了,這種手動方式指定的時間會有誤差,那怎麼和網路時間同步呢,就需要用到ntp軟體了:
ntp Network Time Protocol 網路時間協議。主要用來同步時間。
檢視電腦上是否安裝ntp軟體:
已經安裝了,接下來如何使用ntp同步??
www.pool.net.org是網際網路中標準時間伺服器,這樣就可以同步成功了,秒數幾乎沒有差別!
不過我之前修改的系統時間是8月11號,使用ntpdate命令同步後,時間點變了,日期卻沒改變,仍然是8月11號,可見,ntpdate命令只是同步網際網路的時間點,不同步日期。
還有一個問題,使用ntpdate雖然可以同步時間,但是不能總是手動設定,不然隔斷時間更新會很麻煩,也容易忘記,那解決這個問題就需要用到時間守護程序了,就可以自動同步了:
開啟ntp的一個配置檔案:
這幾個是時間伺服器,只要時間伺服器設定好之後,就可以實現自動同步功能。圖中顯示的就是配好的設定。
設定好之後,將ntpd的守護程序啟動起來就可以了:
再來說一下如何設定當前時間的時區:
選擇亞洲--->中國,然後在選擇時區,設定成功!
Morning!
*************************************************************************************************************************************************************************************