作为网络工程师,手动登录几十台交换机逐条备份配置的时代该结束了!借助Python脚本,只需几行代码即可实现华为交换机配置的自动采集、保存与管理。本文将手把手教你如何通过SSH协议+Python库,轻松完成配置备份,释放双手,专注更高阶的运维优化!
一、为什么需要自动化采集配置?
1. 效率提升:批量处理上百台设备,耗时从小时级缩短至分钟级。
2. 减少人为失误:避免手动操作漏备份或误删配置。
3. 版本管理:定期自动备份,结合Git实现配置变更追踪。
4. 故障快速恢复:紧急情况下,可快速回滚至历史配置。
二、准备环境与工具
1. 安装Python库
Netmiko(推荐):pip install netmiko (支持多厂商设备的SSH连接库)
Paramiko(基础SSH库):pip install paramiko
2.交换机要求
(这一部分以华为eNSP模拟器实现,包括拓扑组网图与模拟器桥接到本地PC)
#交换机管理接口IP地址,
#开启SSH服务(默认开启22端口)
#创建专用账号并授权(如:用户名为huawei,密码Huawei@123,权限为level-15)
开启交换机远程登录
三、实战Python自动采集配置
import paramiko
import datetime
import time
#
定义交换机连接参数
host = '192.168.1.1'
username = 'huawei'
password = 'Huawei@123'
port = 22
#
创建
SSH
客户端
client = paramiko.SSHClient()
client.set_missing_host_key_policy(paramiko.AutoAddPolicy())
try:
#
连接到交换机
client.connect(hostname=host, username=username, password=password, port=port)
#
创建一个交互式
shell
会话
shell = client.invoke_shell()
#
等待
shell
准备就绪(可能需要一些时间,具体取决于设备)
time.sleep(1) #
简单的等待,更好的方法是检查提示符
#
发送命令
command = 'display current-configuration\n'
shell.send(command)
time.sleep(2) #
等待时间根据命令执行时间调整
output = shell.recv(65535).decode('utf-8') #
读取输出
lines = output.splitlines()
start_index = None
for i, line in enumerate(lines):
if 'display current-configuration' in line.lower(): #
假设命令在输出中可见
start_index = i + 1 #
命令输出从下一行开始
break
if start_index is not None:
config_output = '\n'.join(lines[start_index:])
else:
config_output = output #
如果没有找到,使用整个输出(可能需要进一步处理)
finally:
#
print(f"Configuration saved to {filename}")
四、配置采集效果
Python脚本执行效果:
在文件夹里自动生成的命令采集脚本:
通过Python脚本实现交换机配置的自动化采集,不仅大幅提升运维效率,还能为网络稳定性保驾护航。本文提供的代码可直接复制修改,建议从单台设备开始测试,逐步扩展至全网设备。
立即动手尝试吧!如果你有更好的实践技巧,欢迎在评论区分享交流!