標準時間GMT|UTC以及NTP協議學習
1.GMT時間
GMT,Greenwich MeanTime,中文名為格林尼治時間。英國的格林尼治這個城市在經度為零的地球經線上,所以地球以格林尼治所在的0度經線為標準,分為24個時區。自格林尼治以東依次為東一區、東二區等等,自格林尼治以西依次為西一區、西二區等等。例如,北京是處在東八區,和格林尼治相比,時間快了8個小時。
理論上來說,格林尼治標準時間的正午是指當太陽橫穿格林尼治子午線時(也就是在格林尼治上空最高點時)的時間。由於地球在它的橢圓軌道里的運動速度不均勻,這個時刻可能與實際的太陽時有誤差,最大誤差達16分鐘。
由於地球每天的自轉是有些不規則的,而且正在緩慢減速,因此格林尼治時間已經不再被作為標準時間使用。現在的標準時間,是由原子鐘報時的協調世界時(
UTC,Coordinated Universal Time,中文名為協和標準時間。UTC是利用原子中來計時的,原子鐘主要是利用計算晶片的原子震盪週期來計時的。
2.Linux機器的時間
Linux機器中有兩個時間,分別是軟體時鐘和硬體時鐘。其中
軟體時鐘是Linux自己的系統時間,從1970年1月1日開始計算的總秒數
硬體時鐘是主機是硬體系統上面的時鐘,例如BIOS記錄的時間
但是由於軟體時鐘和硬體時鐘都會因為軟體或硬體問題而與準確的UTC時間有所偏差。如果有很少的計算,可以使用date命令來修改時間,但是如果有很多計算機,那麼就需要這些計算機能自動與準確的UTC時間保持同步。那麼就會用到
3.NTP
時間同步的協議有DTSS以及NTP等,目前最常使用的是NTP。
NTP,Network Time Protocol,NTP協議工作的過程大致如下:
(1)網路上某臺主機啟動一個NTP Server的daemon程序
(2)client會向NTP Server傳送出校對時間的messge
(3)NTP Server會送出當前的標準時間給client
(4)client接收了來自NTP Server的時間後,會據以調整自己的時間
這樣就實現了網路校對。
備註:網路上公開的NTP Server的有很多,例如我國的授時中心伺服器的IP地址為210.72.145.44
4.Linux
(1)手動修改
date——修改軟體時鐘,例如date072816332011
hwclock——修改硬體時鐘,就是BIOS記錄的時間,例如hwclock -r讀取BIOS中記錄的時間。hwclock -w將軟體時鐘記錄的時間寫入到BIOS中,是二者一樣。
備註:通常我們修改了Linux的系統時間後,要使用hwclock-w將該時間寫入到BIOS中,這是因為如果計算機重啟時,會從BIOS中讀取時間作為系統時間。
(2)網路校時
使用ntpdate命令校時即可。