shell脚本操作交换机_⽹络设备⾃动备份shell脚本这边以华为交换机为例写的脚本,其它产商设备根据设备命令修改脚本即可。
需求
批量备份⽹络设备配置⽂件到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"
linux循环执行命令脚本
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    //通过mail命令发送邮件,echo输⼊邮件内容,-s选项配置邮件名称,-a选项制定附件⽬录
以上为脚本所有内容,也可以在脚本最后加上rm命令来将已经发送邮件的本地配置⽂件给删除,然后在配置计划任务周期执⾏脚本。
此脚本可以备份所有⽹络设备配置⽂件或者下发命令,只需要根据设备来修改expect⾥的内容即可。

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。