背景
对于中小型网络来说,网络设备相对较少,维护相对简单,即使出现故障解决起来也相对较快。
而大型网络一般结构复杂,设备数量多,不同网络区域的设备配置大多不同,不可能记住所有设备配置。当修改配置后未及时保存,某天意外断电后,恢复起来非常麻烦。或者发生了误操作,未能及时发现,找起来也是比较麻烦的。这时候,备份设备配置就显得尤为重要。
而手动备份配置文件是件很枯燥的、重复的工作,当设备数量比较多时会浪费大量时间。
既然这是件重复的工作,我们可不可以用脚本或其他工具定时自动批量备份设备文件呢?
这里分享下如何使用shell脚本自动批量备份交换机配置文件。
步骤
1、 首先,获取配置文件路径及文件名
在用户视图下使用dir命令找到配置文件在设备上的保存路径和配置文件名称。
不同型号设备配置文件的默认存储位置不同,常见的有flash:/和cfcard:/。华为设备默认配置文件名为vrpcfg.zip,华三设备默认配置文件名为config.cfg。
<Huawei> dir
2、其次,开启ftp功能
在需要备份配置文件的设备上开启ftp功能并设置能使用ftp登录的用户
<Huawei> dir
[Huawei] ftp server enable //开启ftp
[Huawei] aaa
[Huawei-aaa] local-user admin ftp-directory cfcard:/ //设置默认路径
[Huawei-aaa] local-user admin service-type terminal telnet ftp //允许admin用户通过ftp登录
3、然后,准备脚本文件
我们需要准备两个文件:address.txt、script.sh
address.txt的主要作用:向script.sh输入设备IP地址、设备名称(可选)、用户名(可选)、密码(可选)。如果所有设备使用同一个用户名和密码,则可以写入script.sh中作为变量。
script.sh的主要作用:执行ftp登录,下载配置文件,修改配置文件名。
首先是address.txt,示例中设备使用同一个用户名和密码。
192.168.10.254 办公汇聚
192.168.20.254 服务器汇聚
然后是script.sh
#!/bin/bash
Date=`date +%Y%m%d` #备份日期
while read ip name #读取IP和设备名称
do
ftp -n << EOF
open $ip
user
admin TestPassword #用户名和密码
binary
get vrpcfg.zip #配置文件名称,此处需根据待备份设备填写
quit
EOF
mv vrpcfg.zip config/$ip-$name-$Date.zip #移动文件并修改备份的文件名
done < address.txt
4、最后,使用bash script.sh命令执行就好了