查看: 183|回复: 52

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

[复制链接]

545

主题

0

回帖

906

积分

UID
4
贡献
9 点
钻石
99 个
C币
8 个
发表于 2026-8-4 09:08:00 | 显示全部楼层 |阅读模式
通过 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          # 本文档

    下载链接:

    https://wwaxx.lanzout.com/b01bjltapi

    密码:52pj
  • 温馨提示:
    1、在论坛里发表的文章仅代表作者本人的观点,与本网站立场无关。
    2、论坛的所有内容都不保证其准确性,有效性,时间性。阅读本站内容因误导等因素而造成的损失本站不承担连带责任。
    3、当政府机关依照法定程序要求披露信息时,论坛均得免责。
    4、若因线路及非本站所能控制范围的故障导致暂停服务期间造成的一切不便与损失,论坛不负任何责任。
    5、注册会员通过任何手段和方法针对论坛进行破坏,我们有权对其行为作出处理。并保留进一步追究其责任的权利。
    6、网络世界也请遵守我国的法律法规!一旦发现违法行为,将立即封存相关信息并报警处理!
    回复

    使用道具 举报

    0

    主题

    383

    回帖

    0

    积分

    UID
    836735
    贡献
    0 点
    钻石
    0 个
    C币
    0 个
    发表于 2026-8-6 01:48:49 | 显示全部楼层
    自动化程度决定了长期维护的人力投入。
    回复

    使用道具 举报

    0

    主题

    402

    回帖

    49

    积分

    UID
    407261
    贡献
    0 点
    钻石
    0 个
    C币
    0 个
    发表于 2026-8-7 02:19:15 | 显示全部楼层
    选型的时候别只看性能,生态和文档同样重要。
    回复

    使用道具 举报

    0

    主题

    356

    回帖

    356

    积分

    UID
    845142
    贡献
    0 点
    钻石
    0 个
    C币
    1 个
    发表于 2026-8-8 04:39:58 | 显示全部楼层
    备份策略比高可用更值得先做,出事的概率高得多。这套配置在低配机器上跑得动吗?
    回复

    使用道具 举报

    0

    主题

    373

    回帖

    51

    积分

    UID
    686264
    贡献
    0 点
    钻石
    0 个
    C币
    0 个
    发表于 2026-8-9 08:38:43 | 显示全部楼层
    版本升级前先在测试环境跑一遍,别直接上生产。有没有做过压测,瓶颈在哪一块?
    回复

    使用道具 举报

    0

    主题

    377

    回帖

    54

    积分

    UID
    655918
    贡献
    0 点
    钻石
    0 个
    C币
    0 个
    发表于 2026-8-9 23:45:29 | 显示全部楼层
    安全配置不能省,出事之后再补成本高得多。
    回复

    使用道具 举报

    0

    主题

    374

    回帖

    374

    积分

    UID
    762116
    贡献
    0 点
    钻石
    0 个
    C币
    1 个
    发表于 2026-8-10 23:39:10 | 显示全部楼层
    这类工具的学习曲线主要集中在前期配置。
    回复

    使用道具 举报

    0

    主题

    365

    回帖

    365

    积分

    UID
    168082
    贡献
    0 点
    钻石
    0 个
    C币
    1 个
    发表于 2026-8-12 03:50:10 | 显示全部楼层
    安全配置不能省,出事之后再补成本高得多。有没有做过压测,瓶颈在哪一块?
    回复

    使用道具 举报

    0

    主题

    389

    回帖

    53

    积分

    UID
    990420
    贡献
    0 点
    钻石
    0 个
    C币
    1 个
    发表于 2026-8-13 01:41:18 | 显示全部楼层
    选型的时候别只看性能,生态和文档同样重要。有没有遇到过数据一致性的问题?
    回复

    使用道具 举报

    0

    主题

    379

    回帖

    0

    积分

    UID
    871168
    贡献
    0 点
    钻石
    0 个
    C币
    0 个
    发表于 2026-8-14 01:34:59 | 显示全部楼层
    日志的粒度要控制好,太细反而找不到重点。
    回复

    使用道具 举报

    温馨提示:
    1、在论坛里发表的文章仅代表作者本人的观点,与本网站立场无关。
    2、论坛的所有内容都不保证其准确性,有效性,时间性。阅读本站内容因误导等因素而造成的损失本站不承担连带责任。
    3、当政府机关依照法定程序要求披露信息时,论坛均得免责。
    4、若因线路及非本站所能控制范围的故障导致暂停服务期间造成的一切不便与损失,论坛不负任何责任。
    5、注册会员通过任何手段和方法针对论坛进行破坏,我们有权对其行为作出处理。并保留进一步追究其责任的权利。
    6、网络世界也请遵守我国的法律法规!一旦发现违法行为,将立即封存相关信息并报警处理!
    您需要登录后才可以回帖 登录 | 立即加入

    本版积分规则

    QQ客服返回顶部