好友
阅读权限10
听众
最后登录1970-1-1
|
本帖最后由 yiqiudxv 于 2026-8-6 08:11 编辑
通过 SSH 自动备份华为 / H3C 交换机的运行配置,支持差异对比和保留策略。 功能概述- SSH 远程备份:自动登录设备,执行 display current-configuration(只读),保存配置到本地
- 自动识别厂商:华为 VRP / H3C Comware 自动检测,无需手动指定
- 差异对比:每次备份自动与上次对比,标注配置变更(生成 .diff 文件)
- 保留策略:自动清理超过指定天数的旧备份(默认 30 天)
- 汇总报告:每次备份生成 Excel 汇总报告,含成功/失败/变更统计
- 并发执行:多线程同时备份多台设备
- 安全只读:命令白名单机制,绝不执行写操作,不修改设备任何配置
- GUI 图形界面:可视化操作,实时进度、日志、结果表格,支持一键导出报告
命令参数[td]参数 | 说明 | 默认值 | | --inventory, -i | Excel 设备清单路径(必填) | — | | --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.1 | admin | Admin@123 | Core-SW-01 | 22 | huawei | core | 核心交换机 | | 192.168.2.1 | admin | Admin@456 | | 22 | h3c | access | 接入层 |
- 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 |
免费评分
-
查看全部评分
|
发帖前要善用【论坛搜索】功能,那里可能会有你要找的答案或者已经有人发布过相同内容了,请勿重复发帖。 |
|
|
|
|
|