吾爱破解 - 52pojie.cn

 找回密码
 注册[Register]

QQ登录

只需一步,快速开始

查看: 2946|回复: 40
收起左侧

[Windows] 华为、H3C交换机配置配置备份工具(Python版本)

  [复制链接]
yiqiudxv 发表于 2026-8-4 09:08
本帖最后由 yiqiudxv 于 2026-8-6 08:11 编辑

通过 SSH 自动备份华为 / H3C 交换机的运行配置,支持差异对比和保留策略。
功能概述
  • SSH 远程备份:自动登录设备,执行 display current-configuration(只读),保存配置到本地
  • 自动识别厂商:华为 VRP / H3C Comware 自动检测,无需手动指定
  • 差异对比:每次备份自动与上次对比,标注配置变更(生成 .diff 文件)
  • 保留策略:自动清理超过指定天数的旧备份(默认 30 天)
  • 汇总报告:每次备份生成 Excel 汇总报告,含成功/失败/变更统计
  • 并发执行:多线程同时备份多台设备
  • 安全只读:命令白名单机制,绝不执行写操作,不修改设备任何配置
  • GUI 图形界面:可视化操作,实时进度、日志、结果表格,支持一键导出报告

命令参数[td]
参数
说明
默认值
--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 设备清单格式[td]
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          # 本文档

01.png

02.jpg

03.png

下载链接:
https://wwaxx.lanzout.com/b01bjltapi
密码:52pj

免费评分

参与人数 3吾爱币 +2 热心值 +3 收起 理由
woxobo + 1 + 1 谢谢@Thanks!
sh4159 + 1 谢谢@Thanks!
VanYun + 1 + 1 谢谢@Thanks!

查看全部评分

本帖被以下淘专辑推荐:

发帖前要善用论坛搜索功能,那里可能会有你要找的答案或者已经有人发布过相同内容了,请勿重复发帖。

jun269 发表于 2026-9-5 16:34
yiqiudxv 发表于 2026-8-5 09:07
对,安全性限制不让使用telnet,你如果需要telnet可以把源码扔给AI给你改改就行

楼主,看了下源码。是不是里面的所有源码都的改是吧
sangjiaxin 发表于 2026-8-5 15:47
jun269 发表于 2026-8-4 16:14
jun269 发表于 2026-8-4 16:07
备份下来的直接是.cfg格式的?
 楼主| yiqiudxv 发表于 2026-8-5 09:07
jun269 发表于 2026-8-4 16:14
不支持telnet登录,只能用SSH登录才行?

对,安全性限制不让使用telnet,你如果需要telnet可以把源码扔给AI给你改改就行
uc359599080 发表于 2026-8-5 09:57
挺好的,感谢分享
VanYun 发表于 2026-8-5 11:11
UI不错,用Ai跟我的融合了一下,非常好用
donalxm 发表于 2026-8-5 14:12
优秀,先存一下
 楼主| yiqiudxv 发表于 2026-8-6 07:34
VanYun 发表于 2026-8-5 11:11
UI不错,用Ai跟我的融合了一下,非常好用

AI现在挺好用的,哈哈哈
DesBOY 发表于 2026-8-8 22:22
如果能批量配置就更棒了
您需要登录后才可以回帖 登录 | 注册[Register]

本版积分规则

返回列表

RSS订阅|小黑屋|处罚记录|联系我们|吾爱破解 - 52pojie.cn ( 京ICP备16042023号 | 京公网安备 11010502030087号 )

GMT+8, 2026-9-20 15:58

Powered by Discuz!

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表