Windows XP Windows 7 Windows 2003 Windows Vista Windows教程綜合 Linux 系統教程
Windows 10 Windows 8 Windows 2008 Windows NT Windows Server 電腦軟件教程
 Windows教程網 >> Linux系統教程 >> Linux系統常見問題解答 >> 用Linux服務器實現每天定時自動備份交換機配置文件

用Linux服務器實現每天定時自動備份交換機配置文件

日期:2017/1/20 17:35:03      編輯:Linux系統常見問題解答

作為一名網絡運維工程師,如果管理的路由、交換設備比較多的話,那麼你是否也會跟我一樣遇到這樣的問題:設備配置經常調整,尤其是接入層交換機,萬一哪天忘了保存配置,而第二天就發生了交換機掉電重啟,你卻又忘記了以前的配置,導致了網絡恢復配置時間很長。

當你遇到這樣的問題或者煩惱時,你是否也會去想:如果有一種方法,可以讓交換機每天自動保存一下配置該多好。你進一步去考慮,如果交換機能每天不但能自己保存配置,還能把配置上傳到服務器上一份,那該多好啊。

 

你認真看以下內容,或許對你有些啟發。

 

在智能化高度發達的今天,很多交換機已經能夠執行每天自動保存配置的功能了。下面以華為來舉例。[switch]set save-configuration  backup-to-server server 192.168.1.1 transport-type ftp user admin password admin123 path /configbck

                                                               //set save-configuration   備份到服務器  服務器IP是192.168.1.1,備份方式是FTP,用戶名是admin密碼是admin123備份路徑為/configbck//

[switch]set save-configuration delay 5     //5分鐘後執行自動保存配置//

[switch]set save-configuration internal  43200    //每隔12小時循環一次//

[switch]dis saved-configuration time      //能夠看到之前保存配置的方式//

下圖是我在FTP服務器上看到的自動保存的配置文件

wKioL1cMmeWwrjidAAAgSrF0zQg090.png

但是,交換機自動執行,並不是所有版本都支持的,也不是所有品牌都支持的,如果低版本不支持,是可以通過升級交換機的系統版本來實現的,但升級交換機系統,是需要斷網的,也是有風險的。

 

下面,我貼一個我寫好的用Linux來實現此備份的小腳本。此小腳本的功能是代替手工到交換機上保存配置,是完全登陸交換機來作的操作,不論交換機的版本高低,只要權限內能敲的命令,基本都可以實現。

腳本的執行過程是這樣的:telnet到指定交換機--保存配置--通過交換機登陸到服務器--輸入用戶名密碼--將交換機的配置文件上傳到FTP服務器上。

下面是腳本內容(vi tel104.exp):

#!/usr/bin/expect                              //此處用的是expect,如果linux沒有的話,需要yum安裝一下//
set date [exec date "+%Y%m%d"]     //給date變量賦值,後面需要調用//
spawn telnet 192.168.1.104         //這是expect的一個命令,表示從服務器上telnet到192.168.1.104//
expect “Username:"                //在回顯的字符串中匹配Username:,如果匹配到,執行下面//
send "admin\r"                        //向交換機發送admin字符串,即輸入telnet到交換機的用戶名//
expect "Password:"                  //在回顯的字符串中匹配Password:,如果匹配到,執行下面//
send "Admin@huawei\r"        //向交換機發送Admin@huawei字符串。即輸入tel到交換機的密碼//

send "save\r"                          //向交換機發送save字符串,相當於在交換機上執行save命令//
send "Y\r"                //因交換機在save時,會有個交互過程,發送字符串Y,相當於在交換機輸入Y//

send "ftp 192.168.1.1\r"          //向交換機發送ftp 192.168.1.1指令,相當於在交換機上輸入ftp 192.168.1.1這條命令,意思就是登陸FTP服務器//
send "admin\r"      //發送字符串admin,即輸入登陸FTP服務器的用戶名//
send "Admin@huawei\r"          //發送字符串Admin@huawei。即輸入登陸FTP服務器的密碼//
send "put flash:/vrpcfg.zip /configbck/$date.zip\r"  //執行指令Put,交配置文件上傳到FTP服務器//
interact               
~

說明:1、Linux服務器上要先按裝expect,否則是不能執行expect命令的。

          2、Linux服務器要安裝telnet,否則是不能telnet的。安裝都用yum安裝就可以了。

          3、向交換機發送什麼指令,不同的交換機是不一樣的,根據需要選擇要send的字符串,也就是根據需要來指定你要在交換機的輸入的命令。當然不只有備份,像reload /switchport mode trunk都是可以做的。

           4、至於如何搭建FTP服務器,如何更深入地使用expect,請自行百度或者google。

 

下面我們要做的是,創建一個crontab自動執行任務

[root@permanet ~]# crontab -e


00 01 * * * /home/expect/tel104.exp   //1點0分,每日每月每周,執行絕對路徑下的命令//
15 01 * * * /home/expect/tel105.exp   //1點15分,每日每月每周,執行絕對路徑下的命令//

30 01 * * * /home/expect/tel105.exp  //1點30分,每日每月每周,執行絕對路徑下的命令//

45 01 * * * /home/expect/tel106.exp  //1點45分,每日每月每周,執行絕對路徑下的命令//

55 01 * * * /home/expect/tel107.exp  //1點55分,每日每月每周,執行絕對路徑下的命令//

凌晨1點開始,每隔15分鐘自動到一台指定設備保存配置文件到服務器。

Copyright © Windows教程網 All Rights Reserved