2007年4月27日 星期五

架設NTP Server、設定電腦時鐘校時(適用所有Linux)

 最近在工作上遇到兩個問題。
1. 一台 Linux 主機有安裝資料庫,運作一段時間後,我們的 AP Team 成員會發現從資料庫所取出資料的時間不正確。
2. 一台有加入 AD 網域的 Linux + Samba 檔案伺服器,從網路芳鄰登入時,會跳出輸入帳號密碼的視窗,有登入 AD 網域的主機應該都不會出現才對,而設定都正常,帳號密碼也沒錯,但就是無法登入。




 以上兩個原因都是因為 Linux 的系統時間發生錯誤所造成的,所以我們必須將電腦的系統時間校對,在 Linux 系統中可以使用 date 的指令來設定時間,但你會發現過幾個月時間又不對了,所以我們要設定 crontab,讓 Linux 每天定時向 NTP Server 校時。
 # crontab -e 0 0 * * * /usr/sbin/ntpdate time.stdtime.gov.tw && /sbin/hwclock -w
 ntpdate:與 NTP Server 進行時間同步的指令,後面接的是所要同步的 NTP Server。
 hwclock:可讀取 BIOS 的時間及將時間寫入 BIOS。

 由於我們公司不是所有 Linux 主機都可以跟外部的 NTP Server 校時,所以需要一台 Linux 主機當 NTP Server,設定很簡單,設定參數如下
 # vi /etc/ntp.conf
  server tick.stdtime.gov.tw prefer
  server tock.stdtime.gov.tw prefer
  server time.stdtime.gov.tw prefer
  server clock.stdtime.gov.tw
  server watch.stdtime.gov.tw
 # service ntpd restart
    

 # ntpd -c ntp.conf
 依上述即可完成設定並啟動 NTP Server,其實就算不設定 ntp.conf 直接啟動 NTP Daemon 也可以提供服務,因為 ntp.conf 已有預設上層的 NTP Server,只是與國內的 NTP Server 同步會比跟國外的 NTP Server 同步來得迅速,也沒有延遲的問題。

沒有留言:

張貼留言