利用Linux shell脚本自动备份防火墙配置
为什么要写这个呢,因为之前公司突然断电了,防火墙中所有配置全部被清空了(不明白为什么那会儿断电防火墙配置会凭空消失),导致公司网络中断一个钟,也是比较深刻教训吧,之后一点点的给配回来
1、首先在一台windows服务器中搭建一个FTP服务器,作为备份服务器
2、撰写shell脚本
#!/bin/bash
BACKUP_DATA=`date +%Y%m%d` #取时间戳
IPADDR=(`cat /opt/switch_list | awk ‘{print $1 }’`) #账号密码及IP地址存放在user.passwd中,通过awk获取所有IP并存放在数组
for ipaddr in ${IPADDR[@]} #for循环,取出所有ip地址复制ipaddr
do
echo -e “`date +%H:%M:%S` 开始备份: \e[31m $ipaddr\e[0m” #输出备份开始时间
PASSWORD=(`cat /opt/switch_list | awk ‘{print $2}’`) #取出相应交换机的密码
/usr/bin/expect >> /dev/null << EOF
set timeout 2
spawn telnet $ipaddr
expect “Username:”
send “admin\r”
expect “*Password: “
send “$PASSWORD\r”
expect “*>”
send “ftp 10.1.X.X\r”
expect “*(none)):”
send “ftpuser\r”
expect “Enter password:”
send “xxxxx\r” 此处xxxxx只服务器密码
expect “*ftp]”
send “put flash:/vrpcfg.zip /backup/${ipaddr}_${BACKUP_DATA}.zip\r”
send “put hda1:/vrpcfg.zip /backup/${ipaddr}_${BACKUP_DATA}.zip\r”
expect “*>”
send “quit\r”
EOF
echo “`date +%H:%M:%S` 备份完成: $ipaddr”
done
3、经过测试备份结果如下(设置的是每周备份)