cisco網路裝置配置自動備份

來源:互聯網
上載者:User

標籤:cisco備份   tftp備份   網路裝置備份   kron   

一、背景

客戶要用,需求就是這麼簡單。簡單說一下吧。網路裝置太多了,傳統的手動備份網路裝置配置資訊工作量越來越大,並且不易管理。由此就必須有一種比較簡單的方式了。

二、備份方式一、cisco裝置內建kron命令+TFTP/FTP/HTTP

這種備份方式比較簡單,但是有一定的局限性。因為kron命令在比較新的IOS版本上才有,有些說在12.3(4)以上才有,我測試的版本是12.2(33),也有這個命令。

但是kron命令本身並不能自動按照當前日期來命名備份檔案,所以還需要指令碼來協助wanc

原理圖:

650) this.width=650;" class="alignnone size-full wp-image-261" style="border-top:0px;border-right:0px;border-bottom:0px;border-left:0px;" alt="kron" src="http://www.beyond362.com/wp-content/uploads/2015/01/kron.png" width="589" height="494" />

操作步驟:一、網路裝置操作:

kron命令詳細可參考http://www.cisco.com/c/en/us/td/docs/ios-xml/ios/cns/configuration/xe-3s/asr1000/cns-xe-3s-asr1000-book/cns-cmd-sched.pdf

使用kron命令配置自動備份任務計劃
1、kron policy-list backup #建立任務計劃
2、cli write #儲存當前網路裝置配置,以防止備份資訊不完整
3、cli show run | redirect tftp://172.16.20.223/switch1.cfg #switch1.cfg為備份檔案名,不同裝置使用不同的備份檔案名
4、exit
5、kron occurrence backup at 00:01 1 recurring #每月1日00:01執行備份
6、policy-list backup #啟動計劃任務
7、exit
使用do show kron schedule命令可以查看計劃任務
1、do show kron schedule
二、TFTP伺服器端操作步驟:
service cron restart

三、好了看看備份效果吧

650) this.width=650;" class="alignnone size-full wp-image-263" style="border-top:0px;border-right:0px;border-bottom:0px;border-left:0px;" alt="switch" src="http://www.beyond362.com/wp-content/uploads/2015/01/switch.png" width="628" height="88" />

二、Shell指令碼(Telnet/SSH)+TFTP/FTP/HTTP

這種方式適用於ISO版本過低,沒有kron命令的方式,原理就是通過在linux伺服器上定時執行shell指令碼登入到網路裝置上備份配置資訊到TFTP伺服器實現網裝置配置資訊的自動備份。可以通過Telnet/SSh登陸,Telnet不安全,推薦SSH。如果你一定要用Telnet,那麼稍微修改一下指令碼就可以了。

原理圖:

650) this.width=650;" class="alignnone size-full wp-image-262" style="border-top:0px;border-right:0px;border-bottom:0px;border-left:0px;" alt="ssh" src="http://www.beyond362.com/wp-content/uploads/2015/01/ssh.png" width="860" height="494" />

操作步驟TFTP伺服器端操作步驟:(和第一種方式一樣,需要多裝一個expect)

yum -y install expect
建立交換器配置資訊檔
vi /backup/tftpboot/switch.conf
cisco|172.16.20.1|cisco|cisco
cisco|172.16.20.2|cisco|cisco
說明:一共四列,中間用豎線分割。
第一列:交換器登入使用者名稱;
第二列:交換器登入IP地址;
第三列:交換器登入密碼;
第四列:交換器enable密碼;
每一行為一台交換器的配置資訊。
建立備份指令碼
vi /backup/tftpboot/switch_backup.sh
#!/bin/bash
Date=`date +%F`
TFTP=172.16.20.223 #TFTP伺服器IP地址,只需要改這一個
#我建立了兩個模組,我解釋一下,因為第一次訪問的時候會提示你是否信任該主機,然後將該主機資訊添加到known_hosts檔案中,而以後訪問的時候只要在known_hosts檔案中發現有此主機,就不會再次詢問,那麼使用同一組expect語言就會報錯,所以寫了兩個函數,一個用來第一次登陸,一個用來信任主機之後登陸,比較拙劣。
first_login() {
expect <<EOF
spawn ssh [email protected]$server 
expect "(yes/no)"
send "yes\r"
sleep 1
expect "Password:"  
send "$passwd\r"  
sleep 1
expect "*>"  
send "en\r"  
sleep 1  
expect "Password:"  
send "$enpasswd\r"  
sleep 1  
expect "*#"
send "copy startup-config tftp:\r"
expect "Address"
send "${TFTP}\r"
expect "Destination"
send "${server}-${Date}.conf\r"  
sleep 5
send "exit\r"  
interact
EOF
}
login() {
expect <<EOF
spawn ssh [email protected]$server 
sleep 1
expect "Password:"  
send "$passwd\r"  
sleep 1
expect "*>"  
send "en\r"  
sleep 1  
expect "Password:"  
send "$enpasswd\r"  
sleep 1  
expect "*#"
send "copy startup-config tftp:\r"
expect "Address"
send "${TFTP}\r"
expect "Destination"
send "${server}-${Date}.conf\r"  
sleep 5
send "exit\r"  
interact
EOF
}
for line in `cat /backup/tftpboot/switch.conf`
do
name=`echo $line |awk -F "|" ‘{print $1}‘`
server=`echo $line |awk -F "|" ‘{print $2}‘`
passwd=`echo $line |awk -F "|" ‘{print $3}‘`
enpasswd=`echo $line |awk -F "|" ‘{print $4}‘`
if grep "$server" $HOME/.ssh/known_hosts > /dev/null 2>&1;then
login
else
first_login
fi
  sleep 3
done

執行指令碼、添加計劃任務
chmod +x /backup/tftpboot/switch_backup.sh
echo ‘01 0 1 * * /bin/sh /backup/tftpboot/switch_backup.sh > /dev/null 2>&1‘ >> /var/spool/cron/root
chmod 600 /var/spool/cron/root
service cron restart
網路裝置操作:a) 配置登入使用者名稱和密碼,配置enable密碼

b) 配置ssh v2版本登入

 

OK,比較簡單,到這裡就結束了。來看一下效果。

650) this.width=650;" class="alignnone size-full wp-image-264" style="border-top:0px;border-right:0px;border-bottom:0px;border-left:0px;" alt="ssh1" src="http://www.beyond362.com/wp-content/uploads/2015/01/ssh1.png" width="718" height="108" />

OK,備份完成。

 

本文出自 “Linux步行街” 部落格,請務必保留此出處http://mybsir.blog.51cto.com/4618614/1606711

cisco網路裝置配置自動備份

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.