中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

淺談用expect實現路由器自動備份數據

發布時間:2020-07-30 08:32:19 來源:網絡 閱讀:1000 作者:bosspig 欄目:移動開發

    在網絡界瞎混這么多年,對路由器的認識一直很渣:功能強大的網絡設備。支持強大OSPF、BGP、MPLS ×××等網絡路由協議,卻很少關注對它的日常運維。直到后來接觸到linux,發現linux強大的腳本編程功能。學過linux之后再回來看路由器,特別是思科的IOS,頓悟:IOS就是尼瑪的linux再次開發的,更確切的說應該叫它Unix-like。

    既然,linux可以支持強大的腳本編程,如shell編程、python等實現系統的自動化監控、自動化執行任務,那作為unix-like的IOS路由器是否也可以呢?如果可以實現,是不是就不需要定期做巡檢采集配置文件、CPU利用率等重要信息備份工作了呢?

    答案是肯定的,萬能的互聯網告訴我有一種叫expect的語言可以實現這個功能。對于這個語言簡單解釋下:expect是一種交互式語言,通過expect期待一個內容,然后用send下發要執行的命令。這么說有點抽象,下面會舉例說明。(通過shell編程來實現telnet/ssh,無法實現自動登錄及自動執行其他命令。如果哪位大俠覺得可以,跪求方法。)

 

------------------------------------------------廢話分割線------------------------------------------------------------------------------

例一:實現思科ASR9K路由器配置文件的自動備份(華三、華為網絡設備也支持)

1、需要:linux主機一臺&TFTP服務器一臺(windows也可以),必須和路由器路由可達

2、思路:①寫expect腳本 ②寫crontab 

3、步驟分解

一、寫expect腳本實現設備自動登錄,并上傳配置文件到TFTP服務器

登錄到linux主機:

    vim asr9010.exp                   //創建并編輯一個expect文件,后綴名可寫成.exp

下面是asr9010.exp腳本內容:

     1  #!/usr/bin/expect              //說明該腳本使用expect語言執行
     2  #backup device configuration to tftp server          //注釋
     3  set username getlog                                            //創建變量username,賦值getlog
     4  set password 123456                                          //創建變量password。這兩個變量用于路由器的登錄
     5  set getlog "show running-config | file tftp://1.11.111.111/asr9010-huiyuan.cfg"   

        //設置變量getlog,賦值內容為路由器上需要操作的一條命令,即:上傳配置文件到TFTP服務器
     6  spawn telnet 1.11.111.112    //使用spawn創建一個進程,并執行telnet指令
     7  sleep 1                                 //為避免命令執行過快,休眠1秒    
     8  expect "username:"             //若出現username:
     9  send "$username\n"            //輸入變量username的值,即getlog,就是路由器登錄的用戶名
    10  sleep 1
    11  expect "password:"
    12  send "$password\n"           //這里輸入登錄密碼
    13  send "$getlog\n"                  //進入系統之后,執行變量getlog的值,即那一長串命令
    14  send "exit\n"                        //退出系統
    15  expect eof                            //檢測執行結束

    16  exit                                        //執行結束,關閉進程

用./asr9010.exp就可以執行該腳本(記得修改執行權限),運行過程會直接顯示到屏幕上。

淺談用expect實現路由器自動備份數據

到TFTP上看下執行路徑下就可以看到這個備份的配置文件啦(就不截圖了),如果哪天不幸路由器數據丟失,可直接通過TFTP直接get配置文件到路由器進行數據恢復。

二、在linux主機上配置crontab,實現定期自動執行asr9010.exp腳本

crontab -e 進入crontab編輯模式

0 5 * * 1 /home/devicelog/asr9010.exp      //每周一早上凌晨5點準時執行/home/devicelog/目錄下的asr9010.exp腳本,大功告成。再也不用傻乎乎的手動備份數據了。

--------------------------------------------------------我是一條分割線-------------------------------------------------------------

例二:自動備份路由器上的重要配置如:靜態路由,并將備份內容以郵件附件形式發送到指定郵箱。且,附件命名要求帶當天日期,如route-20151105.txt

PS:方法與例一類似,就是需要在linux主機上配置郵件發送功能,expect結合bash、crontab可以共同完成。

時間有點晚,就不仔細寫了。直接上效果圖:

淺談用expect實現路由器自動備份數據

 

睡之前再廢話一句:執行expect腳本時可以只用>重定向功能,這樣就不會在屏幕上輸出一大堆內容。當需要對輸出的內容做過濾時,重定向到文件后可以用sed\grep\awk對其進行再次利用篩選。反正,linux就是只怕想不到沒有做不到的。

再再廢話一句:像思科一些IOS已經支持很多linux常用命令:egrep、vim、sort、uniq,etc。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

高阳县| 定州市| 大名县| 自贡市| 丰镇市| 句容市| 宜昌市| 肇东市| 灯塔市| 宁强县| 岳阳县| 泰州市| 霍城县| 三明市| 吉林省| 文昌市| 财经| 星子县| 犍为县| 杭锦旗| 武义县| 万州区| 乌兰县| 勃利县| 无为县| 广德县| 上杭县| 盘山县| 专栏| 屯门区| 璧山县| 湘乡市| 平阴县| 松阳县| 五峰| 荔波县| 新昌县| 河北区| 高平市| 延长县| 公主岭市|