1. 程式人生 > >網絡設備自動備份shell腳本

網絡設備自動備份shell腳本

round linu ict server pac 內容 for循環 名稱 network

這邊以華為交換機為例寫的腳本,其它產商設備根據設備命令修改腳本即可。


需求

批量備份網絡設備配置文件到FTP服務器,並將配置文件所在目錄自動壓縮在以附件的形式發送到個人郵箱


環境

linux系統:Centos 6.6

網絡設備:Huawei CE58/68交換機

iplist文件格式:192.168.1.1:CE6851

192.168.1.2:CE5855


腳本內容如下:

#!/bin/bash

for IP in `cat /app/backup/iplist` //通過for循環讀取iplist文件

do

address=`echo $IP |awk -F ":" '{print $1}'` //定義變量IP地址,使用awk命令以":"為分割符號取IP地址

name=`echo $IP |awk -F ":" '{print $2}'` //定義變量交換機系統名稱

/usr/bin/expect << EOF //使用expect命令完成與交換機之間的交互操作

spawn ssh -c des -q -o StrictHostKeyChecking=no admin@$address //啟動一個SSH會話

set timeout 5

expect "*password:"

send "Admin@123\r"

expect "*]:"

send "n\r"

expect "*>"

send "ftp ftp_server address\r"

expect "none)):"

send "ftpuser\r"

expect "*password:*"

send "Admin@123\r"

expect "*ftp]"

sleep 1

send "binary\r"

sleep 1

expect "*ftp]"

sleep 1

send "put vrpcfg.zip ${name}.zip\r" //修改上傳到FTP服務器的文件名稱

sleep 1

expect "*ftp]"

sleep 1

send "quit\r"

sleep 1

expect "*>"

sleep 1

send "quit\r"

expect eof

EOF

done

time=$(date "+%y-%m-%d") //定義時間變量


/usr/bin/zip -r /app/${time}_config.zip /app/ftp/*.zip //壓縮ftp服務器上保存配置文件的目錄

echo "this is test" | mail -s "NetworkConfig" -a /app/${time}_config.zip ******@qq.com //通過mail命令發送郵件,echo輸入郵件內容,-s選項配置郵件名稱,-a選項制定附件目錄


以上為腳本所有內容,也可以在腳本最後加上rm命令來將已經發送郵件的本地配置文件給刪除,然後在配置計劃任務周期執行腳本。

此腳本可以備份所有網絡設備配置文件或者下發命令,只需要根據設備來修改expect裏的內容即可。

網絡設備自動備份shell腳本