這邊以華爲交換機爲例寫的腳本,其它產商設備根據設備命令修改腳本便可。linux
需求bash
批量備份網絡設備配置文件到FTP服務器,並將配置文件所在目錄自動壓縮在以附件的形式發送到我的郵箱服務器
環境網絡
linux系統:Centos 6.6app
網絡設備:Huawei CE58/68交換機ssh
iplist文件格式:192.168.1.1:CE6851ide
192.168.1.2:CE5855ui
腳本內容以下:this
#!/bin/bashspa
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裏的內容便可。