1. 摘要
我用 TRAE SOLO 开发了一款轻量级、可配置的系统巡检工具 Patrol。它通过 SSH 自动登录多台服务器执行预设检查项,并一键生成 HTML/JSON/TXT 多格式报告,帮助运维人员从重复的手工巡检中解放出来。目前已完成 MVP 版本,支持多服务器并发巡检,已在 4 台不同系统(Rocky Linux / Debian)上验证通过。
2. 背景
我是一名IT老兵,从研发转运维,日常需要维护多台服务器,定期检查磁盘、内存、进程、Docker 等状态。传统方式需要手动 SSH 登录每台机器、敲命令、人工判断异常,耗时且容易遗漏。生产环境对安装第三方软件有严格限制,因此我需要一个纯 Shell、无侵入、可配置的自动化工具。这次借助 TRAE SOLO,我希望能快速搭建一个可落地的巡检框架。
3. 实践过程
任务拆解
我将整个工具拆解为五个核心模块:
-
配置管理:通过 group 标签统一管理服务器和检查项
-
远程执行:SCP 上传脚本 + SSH 执行,采集数据
-
结果解析:远程脚本直接输出 JSON,中心机合并
-
报告生成:输出 HTML/TXT 报告
-
告警判断:支持 CPU/内存/磁盘的警告/严重阈值
与 SOLO 的协作流程
1. 架构设计阶段
我向 SOLO 提问:
“我需要一个 Shell 脚本,能够读取 servers.conf、check_groups.conf、checks.conf,批量 SSH 执行采集,生成报告。”
SOLO 生成了清晰的目录结构和主框架。
2. 核心功能迭代
-
并发控制:SOLO 实现了
&+wait的并行执行,性能提升 3 倍 -
JSON 输出:使用
jq构建结构化数据 -
HTML 报告:带表格和颜色标记
3. 踩坑与解决
-
变量名冲突:SOLO 使用了
GROUPS,但这是 Bash 内置变量,改为GROUP_NAMES解决 -
换行符问题:
\n变成字面量,改用$'\n'解决 -
子 shell 变量丢失:管道导致变量无法传递,改用
<<<重定向 -
跨系统兼容:Debian 和 Rocky Linux 命令输出格式差异,用
sed按关键字提取
关键 Prompt 示例
-
“请修改 patrol.sh,增加
--parallel参数控制并发数” -
“remote_collector.sh 中 CPU 使用率在 Debian 上显示为 0,请修复”
-
“请添加磁盘告警阈值,支持警告和严重两级”
4. 成果展示
项目结构
patrol/
├── patrol.sh # 主调度脚本
├── remote_collector.sh # 远程采集脚本
├── conf/
│ ├── servers.conf # 服务器列表
│ ├── check_groups.conf # 组标签定义
│ └── checks.conf # 检查项定义
└── output/ # 报告输出
运行结果
-
成功采集多台服务器
-
覆盖 CPU、内存、磁盘、进程、Docker 检查
-
生成 JSON + HTML + TXT 报告
代码仓库:https://github.com/uncleask/patrol (v0.2.0)
5. 效果与总结
提效成果:10 台服务器巡检从半小时 → 2 分钟
SOLO 协作:生成 80% 代码框架,修复 10+ 个 Bash 细节问题
可复用方法:配置与代码分离、group 标签管理、跨系统兼容处理
本作品使用 TRAE SOLO 完成 ![]()
本作品使用 TRAE SOLO 完成 ![]()
(备注:由于还没有Windows版本solo客户端,Trae IDE solo模式已经完成可用,目前通过Solo web进行再次实践。最终提交完整可用版本)






