本工具专为系统运维人员设计,用于批量巡检多台 Linux 服务器,生成专业的 Word 巡检报告。它支持并发 SSH 连接、自动探测主机信息、深度中间件检查(Nginx/Redis/Kafka/ES/Tomcat/MySQL/Oracle/达梦等),并内置密码加密、防卡死机制和详细的调试日志,帮助您高效完成系统健康度评估。
- Excel 模板自动生成:一键生成标准化主机清单模板,支持主机名自动探测、密码加密存储。
- 批量并发巡检:支持多线程 SSH 并发执行(默认 3 线程),大幅缩短巡检总时间。
- 全面检查项:
- 系统基本信息(版本、内核、CPU、内存、运行时间)
- 环境变量安全(PATH 危险/可写路径、敏感变量、配置文件权限)
- 僵尸进程检测
- 系统句柄分析(全局限制、进程级 TOP 10)
- 磁盘 I/O 统计
- 基础端口与深度中间件巡检(通过进程名+端口双重识别)
- CPU/内存/磁盘性能分析(含 TOP 进程)
- 关键服务状态与系统更新检查(跳过易卡死的 yum check-update)
- 日志错误与登录失败记录
- 定时任务摘要与可疑任务识别(wget/curl/bash -i 等)
- 网络连接状态(使用
ss命令,无需 netstat)
- Word 专业报告:自动生成图文并茂的报告,包含概览、各检查项表格、状态着色(正常/警告/危险)、进度条、巡检总结与建议。
- 安全增强:模板中的密码采用 PBKDF2 派生密钥加密,避免明文泄露。
- 防卡死设计:所有远程命令均带超时控制,避免因网络或命令挂起导致巡检阻塞。
- 双日志系统:INFO 级主日志 + DEBUG 级详细日志(
/tmp/os_inspector_debug.log),便于故障排查。
- Python 版本:3.6 或更高
- 支持平台:Windows(运行工具端) / Linux(被巡检端)
- 依赖库(自动检测,缺失会提示安装):
paramiko– SSH 连接python-docx– 生成 Word 报告openpyxl– 读写 Excel 模板cryptography– 密码加密
-
克隆或下载脚本
将脚本保存为os_batch_inspector.py。 -
安装 Python 依赖
pip install paramiko python-docx openpyxl cryptography
-
(可选)使用 PyInstaller 打包为独立可执行文件
pip install pyinstaller pyinstaller --onefile --name os_inspector os_batch_inspector.py
打包后可在无 Python 环境的机器上运行。
运行脚本,选择菜单 2. 📁 创建 Excel 模板:
python os_batch_inspector.py- 按提示输入模板文件名(或直接回车使用默认名称)。
- 模板将保存在脚本所在目录的
os_inspection_templates/文件夹下。
模板字段说明:
| 列名 | 必填 | 说明 |
|---|---|---|
| 主机名(可选) | 否 | 自定义显示名称,为空则自动获取远程主机名 |
| IP地址 | 是 | 待巡检主机的 IP |
| SSH端口 | 否 | 默认为 22 |
| SSH用户 | 否 | 默认为 root |
| SSH密码 | 是 | 明文或已加密密码(保存时会自动加密) |
| 运维单位 | 否 | 用于报告封面,默认为“中国移动” |
| 运维人员 | 否 | 用于报告签名,默认为“陈松坡” |
| 描述 | 否 | 备注信息 |
| 启用检查 | 否 | 填写“是/否”,默认“是” |
| 优先级 | 否 | 数字越小越优先执行 |
密码安全:模板首次保存时,工具会自动检测明文密码并加密,后续加载时自动解密使用。不同机器生成的模板因加密密钥不同而无法跨机使用,这属于正常安全机制。
- 使用 Excel 打开模板,填写各主机的连接信息。
- 若不想巡检某台主机,可将“启用检查”列设为“否”。
返回主菜单,选择 1. 🚀 批量巡检:
- 选择之前生成的模板文件。
- 输入并发线程数(建议 3~5,根据网络和机器性能调整)。
- 工具将依次连接各主机,执行所有检查项,最终在
os_inspection_templates/巡检报告_时间戳/目录下生成:- 每台主机的独立 Word 报告(命名格式:
IP地址_巡检报告_时间.docx) - 一份批量汇总报告(
.txt)
- 每台主机的独立 Word 报告(命名格式:
- Word 报告:包含 12 个大章节,关键指标带有颜色标识(绿色=正常,橙色=警告,红色=危险)。
- 汇总报告:记录所有主机的巡检结果路径和失败列表。
若巡检过程中出现异常,可查看详细日志:
- 主菜单选择 3. 📜 查看调试日志,显示最近 100 行 DEBUG 日志。
- 完整日志路径:
/tmp/os_inspector_debug.log(Linux/macOS)或C:\tmp\os_inspector_debug.log(需手动创建,Windows 下日志写入当前目录)。
| 章节 | 内容 |
|---|---|
| 1. 巡检概览 | 主机名、巡检时间、运维单位/人员 |
| 2. 系统基本信息 | OS 版本、内核、CPU、内存、运行时间 |
| 3. 安全检查 | PATH 环境变量、敏感变量、配置文件权限 |
| 4. 僵尸进程 | 列出所有 Z 状态进程 |
| 5. 系统句柄分析 | 全局句柄限制与使用率、进程级 TOP 10 |
| 6. 磁盘 I/O 统计 | 各设备的读写完成次数 |
| 7. 中间件巡检 | 端口监听(MySQL/Redis/Nginx 等)+ 深度进程检测 |
| 8. 性能分析 | CPU/内存/磁盘使用率及 TOP 5 进程 |
| 9. 服务与系统更新 | systemd/sysv 关键服务状态,系统更新跳过实际检查(防卡死) |
| 10. 日志与定时任务 | 错误日志、登录失败、crontab 内容、可疑任务 |
| 11. 网络状态 | 接口配置、TCP 连接状态统计、监听端口 |
| 12. 巡检总结 | 自动汇总所有异常项,并给出通用建议 |
A:为了避免 yum check-update 或 apt update 因网络/仓库问题导致长时间卡死,工具默认跳过实际的更新检查,仅检测包管理器的可用性。如需检查更新,请自行登录主机执行。
A:工具对所有命令设置了超时(通常 10~30 秒),若主机负载过高或网络延迟大,可能超时。可通过查看 /tmp/os_inspector_debug.log 定位具体命令,适当增加超时阈值(修改代码中的 timeout 参数)。
A:不能。加密密钥基于当前机器的 hostname + 系统信息生成,跨机器无法解密。这是为了安全考虑,防止模板文件被复制到其他环境后泄露密码。请在每个巡检环境单独生成模板并填写明文密码(保存时会自动加密)。
A:Word 报告默认使用“微软雅黑”字体,若您的系统未安装该字体,请修改 OSReportGenerator._set_font 中的 font_name 为系统已有中文字体(如“宋体”)。
A:编辑 OSSysChecker.check_middleware_detailled() 方法,参考现有代码添加 ps 和版本获取逻辑。同时可在 check_middleware() 的 middleware_map 字典中添加新端口映射。
-
v3.2 (2025-02):性能优化版
- 修复 yum check-update 卡死问题(改为跳过)
- 减少 SSH 命令交互次数(合并 PATH 检查、限制用户 crontab 遍历)
- 增加 DEBUG 级详细日志,便于排查
- 优化 Excel 加载时自动加密明文密码
- 深度中间件巡检增强(达梦、Oracle、ES 等)
- 改用
ss命令替代netstat(无依赖)
-
v3.0:增加 Word 报告、并发执行、密码加密
-
v2.0:基础巡检功能
本工具为内部运维使用,遵循 MIT 协议。欢迎根据实际需求二次开发。
作者:zhouhuanhuan
反馈:如有问题请查看调试日志 /tmp/os_inspector_debug.log 。