项目目录清理 SOP — 删除 monitoring_upgrade/ 旧集群遗留工程¶
配套文档:backup/README.md(备份与回滚资产台账)。 本文只回答"这次改了什么、怎么改、怎么验、怎么退"。
一、背景¶
| 项目 | 内容 |
|---|---|
| 变更类型 | 清理(删除已无引用的旧集群遗留工程目录) |
| 触发条件 | 用户要求清理项目目录;探查发现 monitoring_upgrade/ 是旧集群遗留,对当前生产无作用 |
| 操作主机 | 本机(192.168.31.249),不涉及远程集群状态 |
| 执行日期 | 2026-09-29 15:15:22 |
monitoring_upgrade/ 工程记录的是旧集群(CentOS 7 / 6 节点 / 私有 Harbor / K8s v1.22→v1.34.3)的 kube-prometheus-stack 升级第一步操作档案。当前生产集群 rainchen-k8s 已于 2026-09-16 重建为 Rocky 9.8 / K8s v1.36.4,监控栈由 prometheus_deploy/ 工程(chart 91.4.1 全新部署)承载,与 monitoring_upgrade/ 无引用关系。取证对照见下表:
| 维度 | monitoring_upgrade(旧) | prometheus_deploy(新) |
|---|---|---|
| 集群 | CentOS 7 / 6 节点 / Harbor | Rocky 9.8 / 4 节点(rainchen-k8s) |
| K8s | v1.22→v1.34.3 | v1.36.4(9-16 重建) |
| 性质 | chart 35→55 升级第一步 | chart 91.4.1 全新部署 |
| 日期 | 2026-09-03 | 2026-09-17 |
二、目标¶
变更完成后应达到的可验证状态:
| 编号 | 目标状态 | 实测 |
|---|---|---|
| G1 | monitoring_upgrade/ 目录从项目根消失 | ls -d 报"没有那个文件或目录" ✅ |
| G2 | 备份 tar 包完整,文件数与原一致(460) | tar 包 4.2M,文件数 460 ✅ |
| G3 | 备份台账 README.md 已登记 | cleanup-20260929/backup/README.md 已写 ✅ |
| G4 | 项目其余 13 个工程目录与 docs/ 完好 | ls -d */ 确认 14 个目录(原 15 减 1 加本交付) ✅ |
三、前置条件¶
- 本机对
/home/rain/Documents/k8s_ins/有读写权限 - 磁盘空间足够容纳备份(原 38M,压缩后 4.2M)
- 已确认
monitoring_upgrade/无外部引用(与prometheus_deploy/取证对照,无替代/引用关系) - 用户已勾选确认清理范围(AskUserQuestion 答复:"monitoring_upgrade 整个工程")
四、影响范围¶
| 项目 | 内容 |
|---|---|
| 涉及主机 | 本机 1 台(192.168.31.249),不涉及远程主机 |
| 涉及组件 | 项目目录下的 monitoring_upgrade/ 子目录(38M / 460 文件) |
| 是否停服 | 否。纯文件系统操作,不影响任何运行中的服务 |
| 窗口期 | 无限制,建议在无活跃 git 操作时进行 |
| 在跑作业 | 无 |
| 影响面 | 仅删除本地工程目录与档案;K8s 集群、Slurm、Lustre、LSF 等生产环境不受影响 |
五、分步操作¶
步骤 1:创建交付物与备份目录¶
为本次清理建立专用交付物子目录,备份统一放在其下的 backup/。
mkdir -p cleanup-20260929/backup
预期:目录创建成功,无输出。失败判断:权限不足 → 检查当前用户对项目根的写权限。
步骤 2:记录原始状态供后续对照¶
在打包前固化原始文件数与大小,作为完整性校验基线。
du -sh monitoring_upgrade/ # 预期 38M
find monitoring_upgrade/ -type f | wc -l # 预期 460
实测:38M / 460 文件。
步骤 3:tar 打包备份(高危动作的前置保障)¶
整目录 gzip 打包,命名沿用 <原名>.bak.<YYYYmmdd-HHMMSS>.tar.gz 约定。这一步是删除动作的回滚保障——必须等备份验证通过才能进入步骤 5。
TS=$(date +%Y%m%d-%H%M%S)
tar czf "cleanup-20260929/backup/monitoring_upgrade.bak.${TS}.tar.gz" monitoring_upgrade/
echo "$TS" > cleanup-20260929/.timestamp
预期:rc=0,生成 4.2M 左右的 tar.gz。实测 TS=20260929-151522。
步骤 4:验证备份完整性¶
删除前必须确认备份可回滚。校验两点:tar 包能正常读取、内含文件数与原目录一致。
ls -lh cleanup-20260929/backup/monitoring_upgrade.bak.20260929-151522.tar.gz
tar tzf cleanup-20260929/backup/monitoring_upgrade.bak.20260929-151522.tar.gz | grep -v '/$' | wc -l # 预期 460
坑:tar tzf 输出含目录条目(以 / 结尾),统计文件数要 grep -v '/$' 过滤,否则数字偏大(实测全条目 530,文件 460)。
预期:460,与步骤 2 基线一致。不一致 → 立即停止,不进入步骤 5,检查 tar 错误。
实测:460,一致。
步骤 5:删除原目录(高危)¶
确认备份完整后执行删除。rm -rf 是高危动作,路径必须明确不含通配符,且已在步骤 4 验证备份。
rm -rf monitoring_upgrade/
预期:rc=0,无输出。
步骤 6:验证删除¶
ls -d monitoring_upgrade/ 2>&1 | grep -q "没有那个文件或目录" && echo "OK:已删除" || echo "异常:目录仍存在"
预期:OK:已删除。实测:OK。
步骤 7:确认项目其余工程完好¶
ls -d */
预期:列表含 cleanup-20260929/、docs/、env-inventory/ 等 14 个目录(原 15 个减去 monitoring_upgrade/,新增 cleanup-20260929/)。实测:14 个目录。
实现体:本变更属极简变更(单机、动作 ≤3 条:备份-验证-删除),按规则允许手工 shell 执行,无独立实现体脚本。
六、验证¶
变更后统一验证:
# 1. 目录已删除
ls -d monitoring_upgrade/ 2>&1 # 预期:没有那个文件或目录
# 2. 备份完整
ls -lh cleanup-20260929/backup/monitoring_upgrade.bak.20260929-151522.tar.gz # 预期 4.2M
tar tzf cleanup-20260929/backup/monitoring_upgrade.bak.20260929-151522.tar.gz | grep -v '/$' | wc -l # 预期 460
# 3. 项目其余工程目录完好
ls -d */ | wc -l # 预期 14
全部通过。
七、回滚¶
回滚 = 从备份 tar 包恢复 monitoring_upgrade/ 目录。
备份存放位置:cleanup-20260929/backup/monitoring_upgrade.bak.20260929-151522.tar.gz(详见 backup/README.md)
回滚步骤:
cd /home/rain/Documents/k8s_ins && \
tar xzf cleanup-20260929/backup/monitoring_upgrade.bak.20260929-151522.tar.gz
回滚后验证:
ls -d monitoring_upgrade/ # 预期目录存在
find monitoring_upgrade/ -type f | wc -l # 预期 460
du -sh monitoring_upgrade/ # 预期 38M
幂等说明:删除类变更不需幂等复跑(目录已不存在,再删也是无操作)。备份与回滚链路可幂等验证:解包后再打包,文件数应仍为 460。
八、风险说明¶
| 风险 | 缓解 |
|---|---|
档案丢失(SOP_监控栈升级.md 一并删除) |
已整目录 tar.gz 备份;台账登记清楚;回滚命令可直接恢复 |
| 误删其他工程目录 | rm -rf 路径明确为 monitoring_upgrade/,不含通配;步骤 5 前已验证步骤 4 备份完整 |
| 备份不可用 | 步骤 4 已校验 tar 包可读取且文件数一致;备份在本机磁盘,无网络依赖 |
| 日后需参考旧集群升级经验 | 从 backup/ 解包恢复即可;台账已说明"何时可删"的判定条件 |
附录 A:交付物清单¶
| 路径 | 说明 |
|---|---|
| cleanup-20260929/SOP.md | 本变更档案 |
| cleanup-20260929/backup/monitoring_upgrade.bak.20260929-151522.tar.gz | 整目录打包备份(4.2M) |
| cleanup-20260929/backup/README.md | 备份台账 |
| cleanup-20260929/.timestamp | 时间戳记录(内部使用,可删) |
来源:
/home/rain/Documents/k8s_ins/cleanup-20260929/SOP.md| 最后更新:2026-09-29 20:19(由build/sync.py同步,请勿在站点侧修改)