在日常运维中,网络设备的配置备份是必不可少的一环。尤其是当手头有几十台甚至上百台交换机、路由器时,一台一台登录去导配置显然不现实。这时候,借助表格和脚本结合的方式,就能轻松实现批量执行网络配置备份策略。
把设备信息整理成表格
第一步不是写脚本,而是打开 Excel 或 WPS 表格,把所有需要备份的设备列出来。至少包含 IP 地址、设备类型(比如华为、H3C、Cisco)、登录账号、密码这几列。看起来就像一张设备台账表:
IP地址 设备类型 用户名 密码
192.168.1.1 H3C admin pass123
192.168.1.2 Huawei root huawei@2024
192.168.1.3 Cisco cisco cisco123
这张表不需要多高级,只要格式规整,能导出为 CSV 就行。它将成为自动化脚本的数据源。
用 Python 脚本读取表格并执行备份
接下来写一个简单的 Python 脚本,用 pandas 读取 CSV 文件,再通过 paramiko 或 netmiko 登录设备执行命令。比如:
import pandas as pd
from netmiko import ConnectHandler
devices = pd.read_csv("devices.csv")
for index, row in devices.iterrows():
device_info = {
'device_type': row['设备类型'].lower(),
'ip': row['IP地址'],
'username': row['用户名'],
'password': row['密码'],
}
try:
connection = ConnectHandler(**device_info)
output = connection.send_command("display current-configuration")
with open(f"backup_{row['IP地址']}.cfg", "w") as f:
f.write(output)
connection.disconnect()
print(f"{row['IP地址']} 备份完成")
except Exception as e:
print(f"{row['IP地址']} 备份失败: {e}")
每次运行前,只需要更新一下表格,新增或下线的设备一删一加,重新跑一遍脚本,全部配置自动备份到本地文件。
加入时间戳避免覆盖
如果每天都要执行备份,建议在保存文件时加上日期。比如把文件名改成:
import datetime
now = datetime.datetime.now().strftime("%Y%m%d")
filename = f"backup_{row['IP地址']}_{now}.cfg"
这样每次备份都留档,出了问题也能快速回溯到前一天的配置。
小改动,大效率
很多人觉得自动化要写复杂平台,其实不然。一个表格加几行脚本,就能解决重复劳动。特别是在分公司网络巡检、设备升级前的配置归档等场景下,这套方法又快又稳。关键不是工具多高级,而是把重复的事交给程序,人只管盯结果。