非网络层面没有发现会立即导致业务中断的严重 bug,但存在几个会持续积累风险的工程问题:DR 备份保留策略与 append-only 仓库冲突、Hermes 状态库权限偏松、迁移残留 failed unit、远端 IP-Sentinel/logrotate/man-db 失败服务、以及大体量历史备份缺少分层保留策略。
| 优先级 | 建议 | 原因 | 建议动作 |
|---|---|---|---|
| P0 | 修正 DR 备份 retention/prune 与 append-only 仓库策略冲突 | 备份 snapshot 已完成,但 prune 删除旧快照持续 403;长期会导致远端仓库无界增长,且每次备份产生大量错误日志。 | 把 prune 从常规备份脚本拆出,改为单独维护窗口使用具备 delete 权限的账号执行;或保留 append-only,但脚本中不要在普通备份阶段调用 delete。 |
| P1 | 收紧 Hermes/Codex 状态库权限 | /root/.hermes/state.db、profile state.db、kanban.db、/root/.codex/state_5.sqlite 等为 644。虽然在 root 目录下,但状态库可能含会话上下文或操作记录。 |
对活跃状态库统一 chmod 600;备份区可保留只读,但含敏感上下文的快照也建议 600。 |
| P1 | 清理 systemd 迁移残留 | hermes-gateway-inventory.service 已被 Stock 替代,但 failed 状态仍污染系统健康视图。 |
执行 systemctl reset-failed hermes-gateway-inventory.service,并确认没有 inventory unit 文件残留。 |
| P1 | 处理远端 VPS failed 服务 | 多台远端存在 ip-sentinel-report/updater/runner failed;DE/KR/TK 有 logrotate failed;KR 还有 man-db failed。 |
确认 IP-Sentinel 是否仍使用;不用则 disable/mask 并归档 unit,用则修复配置。logrotate 必须修复,避免日志堆积。 |
| P2 | 建立备份分层保留规则 | /root/backups 已 8.4G,其中 Hermes 配置优化与 workspace 移除备份各 1.4G-2.2G;目前还可控,但增长趋势明显。 |
把“近 7 天快速回滚备份”和“长期归档备份”分层;大目录压缩或移至 DR 仓库,保留 manifest。 |
| P2 | 把第三方源升级纳入维护流程 | unattended-upgrades dry-run 显示第三方源被 pin 排除;Docker CE、Google Cloud SDK 等不会自动升级。 | 每周或每两周人工维护窗口执行 apt upgrade,升级前先快照/备份并验证核心服务。 |
| 项目 | 现状 | 判断 |
|---|---|---|
| 系统健康 | 核心服务运行;唯一 failed 为 hermes-gateway-inventory.service not-found | 迁移残留 |
| 资源 | / 116G 已用 45G,39%;内存 23GiB,可用约 20GiB | 健康 |
| 定时器 | certbot、logrotate、man-db、apt、local-dr-backup、local-dr-restore-drill 均有 timer | 结构完整 |
| logrotate/man-db | 本机最近一次均成功 | 正常 |
| DR 备份 | 备份 snapshot 完成;retention/prune 删除旧快照 403 | 策略冲突 |
| DR 恢复演练 | 2026-05-10 成功恢复关键配置到 DE | 可恢复性已验证 |
| 软件更新 | 11 个包待更新,主要为 Docker CE、Google Cloud SDK、libheif、open-vm-tools | 维护项 |
| 自动更新 | 安全自动更新存在,但第三方源被排除 | 覆盖不完整 |
| 路径/类型 | 现状 | 风险 | 建议 |
|---|---|---|---|
/root/.hermes/state.db | 644,约 280MB | 可能含长期状态、会话摘要或工具痕迹 | chmod 600 |
/root/.hermes/profiles/*/state.db | 多为 644,Health/News/Network/Worker/Stock 均存在 | profile 运行状态可被同机低权限用户读取 | chmod 600 |
/root/.hermes/*/kanban.db | 多为 644 | 任务状态与上下文可读 | chmod 600 |
/root/.codex/logs_2.sqlite、state_5.sqlite | 644 | 可能含会话元数据 | chmod 600 |
/root/projects/migrate_cards_sub_local/extracted/... | 历史迁移目录内有 644 的 env/db 快照 | 历史敏感快照留在项目树 | 移动到受控备份区或 chmod 600 |
| 证书/主 env/主业务 db | 活跃私钥、env、cards/sub/yungen 主库基本 600 | 当前较好 | 保持现状 |
| 对象 | 规模/状态 | 判断 | 建议 |
|---|---|---|---|
/root/backups | 8.4G | 增长明显 | 建立按周/月归档策略;大备份压缩或迁入 DR |
remove-hermes-workspace-20260510-165050 | 2.2G | 可归档 | 确认 workspace 不回滚后压缩或迁移 |
hermes-config-opt-*、hermes-deep-config-opt-*、state-snapshots-governance-* | 各约 1.4G | 可合并保留 | 保留最新一份完整快照,其余转长期归档 |
/root/.cache | 6.0G | 可清理 | 按工具分辨后清理浏览器/构建缓存,避免误删运行态缓存 |
/root/.hermes | 2.8G | 状态膨胀 | 评估 state snapshot 保留策略;压缩旧 session |
/root/1panel-v2.1.10-linux-arm64 | 159M | 疑似安装包残留 | 确认不需要后归档 |
/root/nezha-dashboard-removal-backup-20260426-124951 | 35M | 历史归档 | 长期保留或并入备份目录 |
| 节点 | 非网络问题 | 建议 |
|---|---|---|
| DE | ip-sentinel-* failed,logrotate.service failed | 修复 logrotate;确认 IP-Sentinel 去留 |
| HK | ip-sentinel-* failed;/root/telegram-bot/config/.env 644 | 收紧 env 权限;处理 IP-Sentinel |
| HKA | ip-sentinel-* failed;保留 tk-cdn-import 历史证书导入目录 | 处理失败服务;归档历史证书目录 |
| HKB | ip-sentinel-* failed,webhook-9527 failed | 确认 webhook 是否废弃;不用则禁用 |
| JP | ip-sentinel-* failed;磁盘 66%;nginx 配置有重复 server_name warning | 先修失败服务与 warning;磁盘暂未告警但需观察 |
| KR | ip-sentinel-* failed,logrotate failed,man-db failed | 优先修 logrotate,随后 reset/fix man-db |
| KRB | ip-sentinel-* failed | 确认组件是否仍使用 |
| TK | ip-sentinel-* failed,logrotate failed;保留 cdn-migration-export | 修 logrotate;归档历史 CDN 导出目录 |
| US | ip-sentinel-* failed;Hermes/Codex 状态库 644 | 处理失败服务;收紧状态库权限 |
| USB/HKY | 未见 failed unit;非网络项较干净 | 低优先级巡检即可 |
ip-sentinel-* failed 服务,明确“修复”还是“禁用归档”。| 路径 | 用途 |
|---|---|
/root/backups/security-audit-20260512-085040/NON_NETWORK_RECOMMENDATION_REPORT.html | 本报告 |
/root/backups/security-audit-20260512-085040/vps-*.txt | 远端原始巡检输出 |
/root/scripts/backup-to-de.sh | 本机到 DE 的 DR 备份脚本 |
/var/log/local-dr-backup.log | DR 备份日志 |
/root/.hermes/state.db | Hermes 主状态库 |
/root/.hermes/profiles/*/state.db | Hermes profile 状态库 |
/root/.codex/state_5.sqlite | Codex 状态库 |
/root/backups | 本机备份主目录 |
/root/.hermes/vps_inventory/inventory.json | 远端 VPS 清单 |