2007年4月12日 星期四

NTP Client for Linux



時間與頻率國家標準實驗室接受經濟部標準檢驗局委託,
負責維持頻率及時刻之國家標準,並推廣標準時頻之應用。
目前與國際度量衡局(BIPM)下46個國家時頻實驗室共同維持 "世界協調時"(UTC)。

以上內容截取於 國家時間與頻率標準實驗室 .





Linux 系統的效能好 , 用一台舊電腦就可以跑得嚇嚇叫 ,
但系統時間卻常常跑掉 , 不準 ..................


系統時間是根據電腦主機板 BIOS 而來 ,


而 BIOS 內的時間是由主機版上的振盪器持續計時 ,
其電力來自主機板上的水銀電池 .


因成本考量 , 這振盪器沒有勞力士這麼準 ,
水銀電池也會一直消耗 ,
所以 "電腦時間" 與 "中原標準時間" 會越差越多 ,
甚至每台電腦時間久了以後 , 每台電腦的時間也都會不同 .



要檢查目前系統時間 , 請執行
date
要調整系統時間 , 請執行下列指令 :

date  100114302006      #10月01日14點30分2006年
其中 date 是指令 ,
後面的數字即是現在時間 , 格式為 "月日時分西元年" ,
除西元年為四位數 , 其它皆為兩位數 .


目前 , "國家時間與頻率標準實驗室" 提供了國人 "網路校時" 的服務 .
只要一段時間 , 網路校正一次時間 , 雖不可能百分百準確 , 亦不遠矣 ~!



在校正前 , 我們要先確認 Linux 系統設定的 時區(time zone)是否正確 .
執行 date 指令後 , 顯示的訊息中就有列出了 , 如下
[root@fc6 shs]# date
Thu Apr 12 17:06:11 EST 2007
[root@fc6 shs]#
        
其中 EST 就是錯誤的時區 ,
Asia/Teipei 時區應該顯示為 "CST"


修正方法如下 :
[root@fc6 shs]# cp   /usr/share/zoneinfo/Asia/Taipei   /etc/localtime
cp: overwrite `/etc/localtime'? y
[root@fc6 shs]#



再次執行 date 指令 :
[root@fc6 shs]# date
Thu Apr 12 15:31:44 CST 2007
[root@fc6 shs]#








在 Linux 系統上 , 這網路校時的指令相當簡單 ,
只要可以連上 NTP Server(時間伺服器) , 下一行指令即可 .
請執行

ntpdate  time.stdtime.gov.tw


其中 time.stdtime.gov.tw 就是 國家時間與頻率標準實驗室 所提供的 "時間伺服器"
stdtime.gov.tw 提供的 NTP Service 不只一台 Server , 以下皆是 :
time.stdtime.gov.tw
clock.stdtime.gov.tw
tick.stdtime.gov.tw
tock.stdtime.gov.tw
watch.stdtime.gov.tw




執行後若看到大致如下的畫面 , 表示 "校正" 成功 .

[root@fc5 ~]# ntpdate   time.stdtime.gov.tw
16 Oct 15:20:57 ntpdate[25963]: step time server 220.130.158.52 offset 28788.622489 sec
[root@fc5 ~]#



這時這台 Linux Server 的系統時間就與 "時間伺服器" 同步過了 .
但主機板 BIOS 的時間並不會同時校正 .
可以執行

clock  -w
或者是執行
hwclock  -w
來修正 BIOS 的時間 .


可以把上述兩個指令 , 寫到 "自動工作排程" 內 ,
這樣我們就不用想到才連到 Linux Server 上 "對時" 囉 !












相關資料 :
國家時間與頻率標準實驗室
世界協調時
國家標準時間
時間伺服器
台灣大學網路時間協定伺服器(Network Time Protocol Server)說明
鳥哥的 Linux 私房菜 -- NTP 時間伺服器














沒有留言: