蘇萌 王莎
摘 要:路由器、交換機(jī)等網(wǎng)絡(luò)設(shè)備的配置備份是日常維護(hù)工作的重要內(nèi)容,但路由器、交換機(jī)的配置比較復(fù)雜,一旦配置丟失,恢復(fù)工作極為繁重,而且極容易出錯。該文論述了在Linux環(huán)境下運用Expect腳本,通過TFTP協(xié)議遠(yuǎn)程實現(xiàn)網(wǎng)絡(luò)設(shè)備配置定期自動備份的方法。
關(guān)鍵詞:Linux TFTP 配置文件 自動備份
中圖分類號:TP393 文獻(xiàn)標(biāo)識碼:A 文章編號:1674-098X(2015)02(c)-0055-02
海油大網(wǎng)的網(wǎng)絡(luò)結(jié)構(gòu)是由多種設(shè)備組成的,包括服務(wù)器、路由器、交換機(jī)和防火墻等,每個設(shè)備上面都配置了詳細(xì)的網(wǎng)絡(luò)參數(shù),在這些設(shè)備中又以路由交換設(shè)備最為重要。對路由交換設(shè)備的配置信息進(jìn)行備份是日常維護(hù)的重要內(nèi)容,因為路由交換設(shè)備的配置比較復(fù)雜,一旦配置丟失,手工恢復(fù)不僅工作量相當(dāng)大,而且容易出錯。因此有必要對路由交換設(shè)備的配置進(jìn)行定期備份,保障海油大網(wǎng)的正常運行。
實現(xiàn)配置自動備份的軟件有多種,但價格比較昂貴,而Linux系統(tǒng)是開源免費的,不僅功能強(qiáng)大,而且安全性高,穩(wěn)定性好,已成為當(dāng)前企業(yè)的重要服務(wù)器平臺。因此本文在基于Linux的環(huán)境下編寫備份腳本程序,以實現(xiàn)網(wǎng)絡(luò)設(shè)備配置信息的定期自動備份功能。
1 Linux下TFTP服務(wù)的安裝與配置
TFTP(Trivial File Transfer Protocol,簡單文件傳輸協(xié)議)是用來下載遠(yuǎn)程文件的最簡單網(wǎng)絡(luò)協(xié)議,它是基于UDP協(xié)議實現(xiàn)的。Linux系統(tǒng)的tftp-client是內(nèi)置的,無需配置,只需對Linux服務(wù)器端的tftp-server進(jìn)行安裝與配置。
(1)在Linux系統(tǒng)下安裝TFTP服務(wù)。
說明Linux系統(tǒng)安裝TFTP成功。
(2)修改TFTP配置文件。
安裝完TFTP軟件包后,需要開啟TFTP服務(wù)才能正常使用,TFTP服務(wù)默認(rèn)情況下是禁用的,需要修改配置文件/etc/xinetd.d/tftp開啟TFTP服務(wù),主要是將其disable的狀態(tài)修改為no,使其生效,并在server_args中設(shè)置tftp根目錄。
(3)關(guān)閉防火墻。
從安全角度來說,服務(wù)器的防火墻不應(yīng)關(guān)閉,應(yīng)該按照其所提供的服務(wù)開啟相應(yīng)端口,本文所進(jìn)行的操作為探索模式,僅搭建測試服務(wù)器,因此選擇暫時關(guān)閉防火墻。
Redhat的Linux包含兩種防火墻,一個是IPtables,另一個是Selinux,我們首先將selinux關(guān)閉,通過以下命令將其狀態(tài)設(shè)置為enforcing:
隨后,對IPtables進(jìn)行操作,我們用腳本形式對其策略進(jìn)行設(shè)置:
將其保存為一個腳本,必須執(zhí)行a.sh才能對防火墻策略生效:
chmod u+x a.sh 加執(zhí)行權(quán)限
./a.sh 執(zhí)行
(4)創(chuàng)建備份保存目錄,并賦予相應(yīng)權(quán)限,隨后啟動tftp-server
(5)檢查TFTP所使用的69號端口已打開
在命令行輸入netstat –nlp
有如下結(jié)果,說明TFTP服務(wù)可以正常工作。
2 Linux下配置備份的設(shè)計與實現(xiàn)
2.1 備份腳本程序的實現(xiàn)
由于我們需要根據(jù)設(shè)備返回的一些信息進(jìn)行相應(yīng)的操作,因此我們利用Liunx下的Expect腳本,實現(xiàn)對網(wǎng)絡(luò)設(shè)備配置的定期自動備份,單獨的Expect必須要與Shell相互配合,以使Linux shell能夠支持交互。通過預(yù)先編制腳本,讓路由交換設(shè)備的配置文件按備份日期自動備份到TFTP對應(yīng)的目錄下,不僅可以提高效率而且可以保證備份信息的完整性,方便維護(hù)人員查看了解。具體實現(xiàn)過程如下:
(1)編寫TXT文本文件,用于存放路由器、交換機(jī)等網(wǎng)絡(luò)設(shè)備的IP地址、遠(yuǎn)程登錄密碼、使能密碼及網(wǎng)絡(luò)設(shè)備的名稱,建議在實際生產(chǎn)環(huán)境中,要對該文件進(jìn)行加密,在后面的腳本執(zhí)行過程中會依次調(diào)用TXT文件中的參數(shù)。如在本設(shè)計中使用的routers.txt文件,即為路由交換設(shè)備配置列表。
(2)編寫Expect腳本文件,主要思路為:自動Telnet網(wǎng)絡(luò)設(shè)備→輸入登陸密碼→執(zhí)行備份命令→將下載下來的配置文件重命名并保存到指定文件夾→備份完成并退出設(shè)備。Expect腳本需要設(shè)置可執(zhí)行權(quán)限,腳本依次登錄每臺設(shè)備并在每臺上執(zhí)行“copy run tftp:”命令,即完成一臺設(shè)備的配置備份工作后,將自動執(zhí)行下一臺設(shè)備的備份工作,直至將所有的設(shè)備都備份完成為止。
(3)編寫主執(zhí)行程序main-shell.sh,需要設(shè)置為可執(zhí)行權(quán)限,通過../backup/main-shell.sh執(zhí)行,用于從routers文件循環(huán)取值并調(diào)用expect腳本。
2.2 Linux下實行計劃任務(wù)
因為網(wǎng)絡(luò)的需求隨時會有變化,網(wǎng)絡(luò)設(shè)備的配置也需要隨之進(jìn)行修改,所以不可能網(wǎng)絡(luò)設(shè)備的配置備份一次就一勞永逸,而應(yīng)該是循環(huán)定期備份網(wǎng)絡(luò)設(shè)備的配置,及時將最新的配置備份下來。Linux系統(tǒng)支持atd和crond兩種計劃任務(wù),由于atd服務(wù)使用的at命令只能執(zhí)行一次,所以我們采用crond服務(wù),使用crontab定義的命令,因為其具有循環(huán)作用,可以滿足我們的需求。
編寫/etc/crontab文件可以對系統(tǒng)的計劃任務(wù)進(jìn)行定義,系統(tǒng)會定時讀取該文件,并根據(jù)里面的定義執(zhí)行命令。下面配置中表示每周一的12:30對/backup/main-shell.sh文件執(zhí)行一次,即對routers文件中的網(wǎng)絡(luò)設(shè)備進(jìn)行一次配置備份。
修改完/etc/crontab文件后,需要重啟一下crond服務(wù):service crond restart ,否則計劃任務(wù)可能不生效。
2.3 驗證結(jié)果
如下圖所示,可以看到在12:30之前,查看/backup/configbackup目錄,并沒有文件,而在12:30之后再查看/backup/configbackup,發(fā)現(xiàn)生成了4個以.config結(jié)尾的文件,即路由交換設(shè)備的配置備份文件,且其名稱中包含有備份的日期,便于查找。結(jié)果也表明在Linux環(huán)境下運用Expect腳本,通過TFTP協(xié)議遠(yuǎn)程實現(xiàn)網(wǎng)絡(luò)設(shè)備配置定期自動備份的方法是可行的。
3 結(jié)論
該文在Linux環(huán)境下采用編制腳本的方式實現(xiàn)了對路由交換設(shè)備的定期自動備份,不僅減少了人力、時間的浪費,提高了效率,而且保證了備份數(shù)據(jù)的無誤,其結(jié)果也驗證了該方法的優(yōu)越性和可行性,具有一定的實用價值。
參考文獻(xiàn)
[1] 石進(jìn).巧用SecureCRT腳本實現(xiàn)網(wǎng)絡(luò)設(shè)備配置備份自動化[J].有線電視技術(shù),2011(3):57-58.
[2] 鳥哥.鳥哥的Linux私房菜基礎(chǔ)學(xué)習(xí)篇[M].3版.北京:人民郵電出版社,2013.
[3] 劉宇.關(guān)于交換機(jī)配置文件實現(xiàn)自動備份的研究[J].電腦與電信,2011(3):59-61.