巡检脚本的只读与幂等原则是什么
巡检脚本必须只读:只采集与判断,不修改被检对象。直接原因是巡检通常以高权限、批量、周期性的方式运行,一旦带副作用,就会在无人评审的情况下反复改变系统状态。幂等是第二条约束:脚本被重复执行(重试、补跑、并发)时结论一致且不产生累积副作用。此外脚本应无状态(不依赖上次运行的残留文件)、可重复(同一输入同一结果),并对异常输入给出明确失败而非静默跳过。
基本信息
| 只读要求 | 不修改配置、不重启服务、不清理文件 |
|---|---|
| 幂等要求 | 重复执行结论一致,无累积副作用 |
| 无状态要求 | 不依赖上次运行留下的临时文件 |
| 异常处理 | 采集失败明确报错,不作静默跳过 |
| 权限要求 | 尽可能使用只读权限账号执行 |
典型使用场景
- 采集配置与状态用于与基线比对
- 检查服务与端口可用性
- 读取日志做关键字与错误率统计
- 检查磁盘与资源使用率
- 对证书与备份做只读可用性校验
巡检脚本自检清单
巡检脚本自检清单
# [ ] 是否修改了被检对象(配置、服务、文件、参数)
# [ ] 是否创建临时文件未清理,或依赖上次运行的残留
# [ ] 重复执行两次结论是否一致
# [ ] 采集失败是否明确报错,而不是当作通过
# [ ] 是否可用只读权限账号执行
# [ ] 是否有超时与并发上限,避免压垮被检目标原则与违反后果
| 原则 | 具体要求 | 违反后果 |
|---|---|---|
| 只读 | 不改动配置与服务 | 巡检成为未经评审的变更 |
| 幂等 | 重复执行结论一致 | 重试产生累积副作用 |
| 无状态 | 不依赖残留文件 | 并发或补跑时结果互相污染 |
| 异常明确 | 失败即报错 | 失败被当成通过,形成假全绿 |
只读原则有一个容易忽略的边界:巡检生成的分析结果应写入巡检自身的工作目录,而不是被检目标的目录,否则会在对方文件系统上留下未受管内容。
需要写操作的修复不应塞进巡检脚本。巡检与纠偏应分离为两个阶段:巡检只出结论,纠偏单独走变更或自动纠偏流程,各自有记录与权限边界。