廣西財經學院圖書館 林 源
我館已啟用圖書館管理系統。系統運行一段時間后,每當客戶端啟用圖書館管理系統時,總會提示客戶端時間與服務器時間相差三分鐘以上,是否與服務器時間保持一致,如同意則修改本機時間并進入系統,如不同意則直接退出系統。特別是對于一些無Administrator權限的用戶,管理系統無法自動修改本機時間,導致系統無法運行。
我們都知道,所有計算機的時鐘都是由本機的電腦晶振以固定頻率振蕩產生的。由于晶振的不同,會導致各計算機之間存在時間上的差異。
為了解決各計算機之間存在的時間差異,出現了網絡時間協議NTP(Network Time Protocol),NTP是用來使計算機時間同步化的一種協議,它可以使計算機對其服務器或時鐘源(如石英鐘,GPS等等)做同步化,提供高精準度的時間校正。使用該協議的NTP服務器是架設在Internet上的時間服務器,客戶端可以通過互聯網,從時間服務器獲取國際標準時間,使用各計算機之間時間保持一致,稱之為時間同步。局域網內與標準時間差小于1毫秒,廣域網與標準時間相差約幾十毫秒。
考慮到圖書館管理系統服務器安全性的問題,在進行網絡規劃時將該服務器設置為內網服務器,不能訪問外網,外網也不能訪問該服務器。由于客戶機能夠訪問外網,可以通過操作系統自帶的“自動與Internet時間服務器同步”獲取國際標準時間UTC;而圖書館管理系統服務器的時間只能由電腦晶振以固定頻率振蕩產生,運行時間長后,服務器時間與客戶機時間差異變大,出現上述問題。
為徹底解決該問題,需要在圖書館內構建一臺可供全館所有計算機和服務器可以訪問的時間服務器。
目前較為常用的服務器操作系統有Windows、Linux、FreeBSD。
Windows是大家最為熟悉的操作系統,擁有友好的界面和方便的操作,易于安裝和配置。但系統占用硬件資源較多,系統的穩定性和可靠性相對較弱。據有關資料顯示,Windows系統的服務器年宕機時間為9個小時。
FreeBSD是一個自由的,源于AT&T UNIX的操作系統,是一種i386的網絡操作系統,屬于UNIX家庭之一。FreeBSD是一個完整的操作系統,包含了從開發工具到各種各樣的應用程序。它由一個軟件開發的核心團隊來維護,整個原始程序代碼會有組織地進行更新,所以程序代碼比較有一致性。
FreeBSD的目標是提供一個堅如磐石的系統。十幾年的開發使它成為一個“堅如磐石”的網絡操作系統,有許許多多的大網站和ISP在運行著FreeBSD,系統完全免費,源代碼完全開放,可根據用戶的需求自行修改等特性使得它成為商業計算機和科學研究的極佳平臺。
FreeBSD提供先進的聯網能力,優秀的性能,較好的安全性及兼容性等特點。這些直到今天也是在其他操作系統甚至是一些最好的商業操作系統中都沒有的。
FreeBSD是以PC為主要的開發平臺,所以FreeBSD在PC機上的執行效率和穩定性較高。
Linux作為完全免費的兼容UNIX操作系統,在近幾年來得到了飛速發展。其源代碼的開放,以及近乎免費的價格,都使其獲得了大量的用戶。但是與FreeBSD比,還不是真正意義上的UNIX系統。在網絡的負載非常高時,FreeBSD的性能比Linux好一些。
考慮到時間服務器需要7*12小時不間斷運行,盡可能少的人工干預服務器的運行以及病毒的防治,本項目使用FreeBSD 9.0操作系統。
可通過http://download.chinaunix.net/download/0013000/12434.shtml下載
一般情況下,可以直接選擇國家授時中心服務器,IP地址:210.72.145.44,也可以通過搜索引擎,搜索出距離本地較近的時間服務器。搜索出的時間服務器必須經過測試,看其是否可提供正確的時間。
FreeBSD時間同步ntpd服務使用的標準端口是123,基于UDP協議,因此需檢查出口防火墻UDP站123端口是否已開放。
1.自定義安裝FreeBSD操作系統,在系統安裝過程中需選擇安裝Ports系統,配置好服務器的IP地址、掩碼、網關,確保服務器可以正常上網。
2.使用Ports方式安裝NTP服務
# cd/usr/ports/net/ntp
# make install clean
3.在互聯網上選擇合適的時間服務器做為本時間服務器的上級服務器,并測試是否可獲得正確時間。
# ntpdate 210.72.145.44
29 Jun 17:03:43 ntpdate[25103]:step time server 210.72.145.44 offset 2566438.315735 sec
如無法獲取時間,需檢查上級時間服務器是否正?;虺隹诜阑饓Φ腢TP 123端口是否開放。
4.修改啟動配置文件
# cd/etc
# vi rc.conf
增加下面內容
ntpdate_enable="YES"
ntpdate_program="ntpdate"
ntpdate_flags="210.72.145.44"
5.修改時間服務器配置文件
編輯文件ntp.conf
# vi/etc/ntp.conf
server 210.72.145.44 #指定上級時間服務器
restrict 172.16.0.0 mask 255.255.0.0#172.16.0.0網段里面的客戶端可以進行網絡校時
driftfile/etc/ntpd.drift
至此,時間服務器端已安裝配置完畢。
服務器端的測試主要是為了檢驗時間服務器運行是否正常,是否能為其他客戶端提供時間查詢服務。一般情況下服務器運行ntpd服務后,是需要5-10分鐘才能為其他客戶端提供服務。
可通過查看進程來進行檢查,如該進程存在則顯示如下:
# ps axww|grep ntpd
81078 ?? Ss 0:00.05/usr/local/bin/ntpd-c/opt/etc/ntpd.conf-p/var/run/ntpd.pid-l/opt/var/log/ntpd.log-s/opt/var/ntpd-stat
# sockstat -l | grep":123"
root ntpd 81078 20 udp4 *:123 *:*
root ntpd 81078 22 udp4 61.129.59.109:123 *:*
root ntpd 81078 26 udp4 127.0.0.1:123*:*
root ntpd 81078 21 udp6 *:123 *:*
root ntpd 81078 24 udp6 ::1:123 *:*
root ntpd 81078 25 udp6 fe80:5::1:123*:*
在ntpd服務啟動10分鐘后,在其他BSD系統或Linux系統上,運行ntpdate來進行時間同步,測試ntpd服務是否正常服務。
如果運行結果如下,則說明ntpd服務正常:
# ntpdate 172.16.11.101
26 Jul 16:12:22 ntpdate[92216]:step time server 61.129.59.109 offset 0.949830 sec
如果運行結果如下,則說明ntpd服務不正常:
# ntpdate 172.16.11.101
26 Jul 15:41:24 ntpdate[89554]:no server suitable for synchronization found
在Linux上面進行網絡校時,執行ntpdate即可:
#ntpdate 172.16.11.101
#172.16.11.101是本地NTP服務器的IP
不要忘了使用hwclock命令,把時間寫入bios
hwclock-w
如果想定時進行時間校準,可以使用crond服務來定時執行。
編輯/etc/crontab文件
加入下面一行:
30 8 * * * root/usr/sbin/ntpdate 172.16.11.101;/sbin/hwclock-w #172.16.11.101是NTP服務器的IP地址
然后重啟crond服務
service crond restart
這樣,每天8:30 Linux系統就會自動的進行網絡時間校準。
雙擊桌面任務欄上的時間,彈出“日期和時間”屬性窗口,選擇Internet時間,在服務器中填入配置好的NTP服務器的IP地址,然后點擊立即更新,系統時間就會立即更新。如果想定時更新,把左上角的自動與Internet時間服務器同步選中,然后點擊右下角的應用即可。
在圖書館內構建時間服務器,圖書館管理系統服務器與各客戶端計算機都通過該時間服務器校準本機時間,客戶端不再出現與服務器時間偏差提示。時間服務器運行正常,至今已運行半年多,從未出現故障。
[1]王波.FreeBSD使用大全[M].北京市:機械工業出版社,1999.
[2]http://download.chinaunix.net/download/0013000/12434.shtml[EB/OL].
[3]FreeBSD NTP服務器配置筆記.http://www.bsdart.org/archives/20101122/338.html[EB/OL].
[4]FreeBSD用NTP更新系統時間.http://www.info110.com/freebsd/in26252-1.htm[EB/OL].