留痕与归档的区别
留痕是记录要素:执行主体、起止时间、实际目标清单、执行的动作与参数、逐台结果、授权依据(变更单或审批记录)、是否回滚。归档是把这些内容连同当时执行的脚本版本、配置仓库版本与原始输出一起打包保存,并建立可检索的索引。两者配套才有效:只有留痕没有归档,事后拿不到原始证据;只有归档没有留痕要素,包里一堆文件却说不清哪次作业对应哪张变更单。
基本信息
| 留痕要素 | 主体、时间、目标、动作与参数、结果、授权依据、回滚情况 |
|---|---|
| 归档对象 | 脚本版本、清单、原始日志、结果报告、审批与变更单、回滚记录 |
| 保留周期 | 按合规与内控要求确定,常见从数月到数年 |
| 检索键 | 作业标识、时间范围、目标主机、变更单号 |
典型使用场景
- 合规审计:按时间范围导出某类操作的完整记录
- 事故复盘:还原当时的执行顺序与逐台结果,区分是脚本问题还是环境问题
- 责任界定:确认操作主体与授权依据,避免事后争议
- 交接与知识沉淀:新同事通过历史归档了解标准操作方式
- 演练留档:把演练过程与结果固化,作为改进依据
- 容量回顾:用历史执行耗时与影响面支撑后续规划
一次作业的归档包
一次作业的归档包
# 归档包应包含「当时执行的脚本 + 当时的目标清单 + 原始输出 + 依据」
job=publish-20261017
dir=/var/archive/$job
mkdir -p "$dir"
cp -a /opt/jobs/publish.sh "$dir/publish.sh" # 执行当时用的脚本版本
git -C /etc/conf rev-parse HEAD > "$dir/conf-rev.txt" # 配置仓库版本,便于复现
cp -a hosts.txt "$dir/targets.txt" # 实际命中的目标清单
cp -a /var/log/jobs/$job.log "$dir/run.log" # 原始输出,失败记录也保留
cp -a change-CHG-2317.txt "$dir/approval.txt" # 审批或变更单留档
tar -czf "$dir.tar.gz" -C /var/archive "$job"
sha256sum "$dir.tar.gz" > "$dir.tar.gz.sha256" # 校验和,证明归档未被改动
# 索引与保留:把作业标识、时间、变更单号写入归档索引,按合规要求设置保留期归档对象与检索重点
| 归档对象 | 内容 | 保留重点 | 检索键 |
|---|---|---|---|
| 脚本与版本 | 执行文件、仓库提交号 | 能复现当时逻辑 | 作业标识、提交号 |
| 目标清单 | 实际命中的主机列表 | 证明影响范围 | 主机、时间 |
| 原始输出 | 逐台结果与错误信息 | 失败细节不能丢 | 主机、退出码 |
| 结果报告 | 汇总统计与校验结果 | 趋势与合规证据 | 作业标识、时间 |
| 审批记录 | 变更单与批准信息 | 授权依据 | 变更单号 |
归档的关键动作是「一次性打包关联文件」:脚本、清单、日志、依据同时入库。分散保存在不同系统时,任一处缺失都会让归档失去说服力,尤其是数月后需要举证的时候。
归档内容常包含配置全文、网络拓扑与主机清单,属于敏感信息。归档库应限制访问范围、设置保留期与到期清理策略,避免把敏感资料长期散落在共享目录。