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