緣起
在家用電腦上,因為大部分用的是windows的桌面系統,要調整系統時間相當簡單,
不論是手動直接對右下角的時間按左鍵兩下去調整,或是去下載 http://www.stdtime.gov.tw/chinese/home.htm 網路校時程式NTPClock
,執行程式透過網路來調整系統時間。假使今天要調整的是像debian這樣like unix,只有文字介面的系統主機又該怎麼做呢?其實我們可以有兩種方式來處理,以下來說明這兩種的用法。
手動方式
sudo date -s 2007/12/03
sudo date -s 17:02:07
sudo hwclock --systohc --utc
第一行與第二行分別設定年月日時分秒,第三行的意思是把我們設定的時間寫入到bios裡面,也就是把系統時間跟硬體bios的時間做同步。假使在執行第三行時出現以下錯誤:
select() to /dev/rtc to wait for clock tick timed out
可以試試看加上 --directisa 參數 ,也就是:
sudo hwclock --systohc --utc --directisa
ntpdate
在Linux 的環境當中可利用內建的用戶端程式ntpdate來跟ntp server連線做系統時間的同步。以debian為例,可以執行以下語法來做同步處理:
sudo ntpdate time.stdtime.gov.tw
sudo hwclock -w
第一行的time.stdtime.gov.tw是ntpserver,也就是我們要把系統時間跟這個伺服器做同步,以下為幾個比較常用的ntpserver:
time.stdtime.gov.tw
clock.stdtime.gov.tw
tick.stdtime.gov.tw
tock.stdtime.gov.tw
watch.stdtime.gov.tw
第二行表示把我們調整好的時間同步更新到bios,與手動方式的意思是相同的。
總結
以上介紹的兩種方式其實都有他的缺點。手動方式因為是手動輸入時間,所以難免會有誤差幾秒的情況;ntpdate的方式則必須主機有對外可以通的網路才能使用。網站主機的系統時間往往會影響到很多層面,比如購物網站的訂單時間,或者是資料交換執行的時間,其影響往往是事後在補救都是很棘手的事。由於系統時間常常因不明原因的變快或變慢(以變慢的情況比較常見), 因此把文章中介紹的指令寫到cron去執行也不失為一個管理主機系統上更為便利的方法。
參考
鳥哥的Linux私房菜 http://linux.vbird.org/linux_server/0440ntp.php">http://linux.vbird.org/linux_server/0440ntp.php
補充-ntpdate原始碼模式安裝步驟
參考網址 http://weber.tn.edu.tw/sammy/net_pbm/ntpdate.htm">http://weber.tn.edu.tw/sammy/net_pbm/ntpdate.htm
1.到http://www.ntp.org/downloads.html下載release檔案
wget ftp://ftp.udel.edu/pub/ntp/ntp4/ntp-4.2.4p7-RC2.tar.gz
2.把壓縮檔解壓縮
tar zxvf ntp-4.2.4p7-RC2.tar.gz
3.開始編譯
cd ntp-4.2.4p7-RC2
./configure
make
make install
即安裝完成。
4.建議可把校時動作放到cron裡定時執行,參考語法如下:
30 * * * * /usr/local/bin/ntpdate time.stdtime.gov.tw
表示每30分鐘與ntp-server執行校時動作。