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