一、物理环境搭建
? ?? 说明:这里我只演示备份一台交换机,备份多台网络设备原理是一样的!!!
1、备份原理: centos 安装ftp客户端,centos 通过ftp登录到交换机拉取交换机配置文件保存到ftp服务器,登录拉取实现自动化无需人工干预,实现定期批量备份网络设备。
二、备份前准备
2、交换机s7706配置
#交换机需开启ftp,为了保证交换机安全,不要用ssh登录账号,单独建立个ftp账号。
ftp server enable //开启ftp
set default ftp-directory flash: //设置ftp主目录
#认证 授权 审计
aaa // 进入aaa认证
local-user ftp privilege level 3 password cipher 123 //创建ftp登录账号
local-user ftp service-type ftp //设置服务类型为ftp
#注意:可能不同版本的配置ftp命令不一样,更具你的版本进行配置
3、centos配置
#安装ftp客户端,只需安装ftp客户端就可以了无需安装服务端
[root@tzw-centos ~]# yum install -y ftp //这里使用yum方式安装
#检查服务器到交换机网络是否畅通
[root@gzy-centos ~]# ping 192.168.3.1
PING 192.168.3.1 (192.168.3.1) 56(84) bytes of data.
64 bytes from 192.168.3.1: icmp_seq=1 ttl=254 time=3.26 ms
64 bytes from 192.168.3.1: icmp_seq=2 ttl=254 time=1.89 ms
4、创建IP、密码存放文件
[root@tzw-centos ~]# cat /root/ip.text
# ip地址 用户名 密码 别名
192.168.3.1:ftp:123:核心机房交换机-主
#注意必须安装上述示例写,不然脚本提取信息会失败':'中间不能有空格!!!,
#如果以后那台交换机不需要备份就在前面加#就可以了!!
#如下我不备份被核心交换机!!!
[root@tzw-centos ~]# cat ip.text
# ip地址 用户名 密码 别名
192.168.3.1:ftp:admin@123:核心交换机-主
#192.168.3.2:ftp:admin@123:备核心交换机-主
5、准备份脚本
swich_back.sh
#!/bin/bash
#该脚本实现网络设备自动备份
#注意该脚本适用于华为,华三设备
#创建时间2021-12-15
#定义变量
echo -e "\033[32m##############################################################\033[0m"
echo -e "\033[32m# 欢迎使用小汤一键备份网络设备脚本!!! #\033[0m"
echo -e "\033[32m# 使用该脚本前请确保网络设备的ftp服务正常!!! #\033[0m"
echo -e "\033[32m# 有问题请联系:QQ 527887682 #\033[0m"
echo -e "\033[32m##############################################################\033[0m"
check_os()
{
#检查是否安装ftp,expect
echo -e "\033[32m# 正在检查你的系统是否符合要求,请稍等\033[5;32m...\033[0m \033[32m #\033[0m"
sleep 3
rpm -aq | grep ftp &>/dev/null
[ $? -ne 0 ] && echo "ftp未安装" && echo "正在安装ftp....." && yum install -y ftp &>/dev/null
yum list installed | grep expect &>/dev/null
[ $? -ne 0 ] && echo "expect未安装" && echo "正在安装expect....." && yum install -y expect &>/dev/null
}
back_up()
{
echo -e "\033[32m# 开始备份,请稍等\033[5;32m...\033[0m \033[32m #\033[0m"
sleep 3
echo -e "\033[32m##############################################################\033[0m"
mkdir /root/backup #目录可修改
BACKUP_DIR=/root/backup #目录可以修改
TIME=`date +%Y-%m-%d-%H:%M`
IPLIST=/root/ip.text #这个文件必须和创建的ip、密码存放文件一样!!
for IP in $(cat $IPLIST )
do
address=`echo $IP | grep -v ^# | awk -F ":" '{if($1!~/^#/) print$1}' | grep -v ^$`
user=`echo $IP | grep -v ^# | awk -F ":" '{if($2!~/^#/) print$2}' | grep -v ^$`
passwd=`echo $IP | grep -v ^# | awk -F ":" '{if($3!~/^#/) print$3}' | grep -v ^$`
name=`echo $IP | awk -F ":" '{if($4!~/^#/) print$4}' | grep -v ^$ `
/usr/bin/expect << END &>/dev/null
spawn ftp $address
expect "*Name*"
send "$user\n"
expect "Password:"
send "$passwd\n"
expect "ftp>*"
send "lcd $BACKUP_DIR\n"
expect "ftp>*"
send "get vrpcfg.zip $name-$TIME.zip \n"
expect "ftp>*"
send "exit\n"
expect eof
interact
END
done
echo -e "\033[32m# 恭喜你备份完成 #\033[0m"
echo -e "\033[32m# 请到$BACKUP_DIR 目录查看文件 #\033[0m"
echo -e "\033[32m##############################################################\033[0m"
}
check_os;back_up
三、开始备份
[root@gzy-centos ~]# chmod +x swich_back.sh //添加执行权限
[root@gzy-centos ~]# ./swich_back.sh
##############################################################
# 欢迎使用小汤一键备份网络设备脚本!!! #
# 使用该脚本前请确保网络设备的ftp服务正常!!! #
# 有问题请联系:QQ 527887682 #
##############################################################
# 正在检查你的系统是否符合要求,请稍等... #
# 开始备份,请稍等... #
##############################################################
# 恭喜你备份完成 #
# 请到/root/backup 目录查看文件 #
##############################################################
[root@gzy-centos ~]# ls /root/backup/
核心交换机-主-2021-12-15-22:06.zip
四、添加计划任务
#每星期六的晚上11:00执行备份,可以根据自己需求设置计划任务
[root@gzy-centos ~]# crontab -l -uroot
0 23 * * 6 /root/swich_back.sh
到此备份完成!!!
注意:此脚本只适用于华为、华三网络设备!!!因为它们的配置文件是vrpcfg.zip''
备份中间有啥问题可以私信哦!!!
|