华为、H3C交换机配置配置备份工具(Python版本)
通过 SSH 自动备份华为 / H3C 交换机的运行配置,支持差异对比和保留策略。-------------------------
功能概述
[*]SSH 远程备份:自动登录设备,执行 display current-configuration(只读),保存配置到本地
[*]自动识别厂商:华为 VRP / H3C Comware 自动检测,无需手动指定
[*]差异对比:每次备份自动与上次对比,标注配置变更(生成 .diff 文件)
[*]保留策略:自动清理超过指定天数的旧备份(默认 30 天)
[*]汇总报告:每次备份生成 Excel 汇总报告,含成功/失败/变更统计
[*]并发执行:多线程同时备份多台设备
[*]安全只读:命令白名单机制,绝不执行写操作,不修改设备任何配置
[*]GUI 图形界面:可视化操作,实时进度、日志、结果表格,支持一键导出报告
-------------------------
命令参数参数说明默认值--inventory, -iExcel 设备清单路径(必填)—--backup-dir备份文件存储目录backup/--keep-days备份保留天数30--concurrency, -j并发线程数3--sheet指定 Excel Sheet 名第一个 Sheet--username默认用户名(覆盖 Excel 空值)admin--password默认密码(覆盖 Excel 空值)—--create-template生成 Excel 模板文件—
Python脚本使用示例
# 基本备份python backup_tool.py --inventory pw.xlsx
# 指定备份目录和保留天数python backup_tool.py --inventory pw.xlsx --backup-dir D:\配置备份 --keep-days 90
# 指定并发数(网络好时可提高)python backup_tool.py -i pw.xlsx -j 5
# 指定默认密码(Excel 中密码列为空时使用)python backup_tool.py -i pw.xlsx --password Admin@123
-------------------------
Excel 设备清单格式IP地址用户名密码主机名端口厂商角色备注192.168.1.1adminAdmin@123Core-SW-0122huaweicore核心交换机192.168.2.1adminAdmin@45622h3caccess接入层
[*]IP地址、用户名、密码:必填
[*]端口:可选,默认 22
[*]厂商:可选,huawei / h3c / auto(自动识别),默认 auto
[*]其他列:可选,仅用于备注
[*]列名支持中英文,顺序可调整
-------------------------
输出文件结构
backup/
├── 192.168.1.1/ # 每台设备一个子目录
│ ├── 192.168.1.1_2026-08-04_080000_001_a1b2c3d4.txt # 配置文件
│ └── 192.168.1.1_2026-08-04_080000_001_a1b2c3d4.diff # 差异文件(有变更时)
├── 192.168.1.2/
│ └── 192.168.1.2_2026-08-04_080000_002_e5f6g7h8.txt
└── backup_report_20260804_080000.xlsx # 汇总报告
[*]配置文件名:{IP}_{日期}_{时间戳}_{内容hash}.txt,防重名覆盖
[*]差异文件:配置有变更时自动生成,记录与上次备份的差异
[*]汇总报告:Excel 格式,包含每台设备的备份状态、文件大小、变更情况
-------------------------
安全说明本工具严格遵守只读原则:
[*]命令白名单:只允许 display current-configuration 等只读命令
[*]禁止写操作:system-view、undo、save、reset 等命令被自动拦截
[*]SSH 交互模式:使用 invoke_shell,不执行任意命令
[*]不修改设备:不写入任何配置,不修改任何设备状态
-------------------------
兼容性
[*]设备:华为 VRP(S 系列交换机)、H3C Comware
[*]Python:3.10+
[*]操作系统:Windows / Linux / macOS
[*]paramiko:必须 3.x(5.0 不兼容老式交换机的 KEX 算法)
-------------------------
源码结构
Final/
├── backup_tool.py # 命令行主程序入口
├── backup_gui.py # GUI 图形界面主程序入口
├── backup.py # 备份核心逻辑(SSH拉取、差异对比、报告生成)
├── collector.py # SSH 采集器(连接管理、命令白名单、厂商识别)├── inventory.py # Excel 设备清单读取 / 模板生成
├── utils.py # 公共工具(编码修复、依赖检查)├── requirements.txt # Python 依赖
├── build.py # PyInstaller 打包脚本(命令行版)
├── build_gui.py # PyInstaller 打包脚本(GUI 版)
└── README.md # 本文档
下载链接:
https://wwaxx.lanzout.com/b01bjltapi
密码:52pj 自动化程度决定了长期维护的人力投入。 选型的时候别只看性能,生态和文档同样重要。 备份策略比高可用更值得先做,出事的概率高得多。这套配置在低配机器上跑得动吗? 版本升级前先在测试环境跑一遍,别直接上生产。有没有做过压测,瓶颈在哪一块? 安全配置不能省,出事之后再补成本高得多。 这类工具的学习曲线主要集中在前期配置。 安全配置不能省,出事之后再补成本高得多。有没有做过压测,瓶颈在哪一块? 选型的时候别只看性能,生态和文档同样重要。有没有遇到过数据一致性的问题? 日志的粒度要控制好,太细反而找不到重点。