快照与回滚 SOP
数据安全的兜底方法论:自动快照 + 远端推送 + 只读恢复。参考实现:auto_snapshot.ps1(Windows 计划任务,每 5 分钟)+ snapshot_restore.ps1(只读恢复工具)。
一、快照机制(自动)
- Windows 任务计划程序注册触发器,每 5 分钟运行快照脚本
- 对受保护目录(如:工作仓库 / 视频工程 / 产品数据)执行 git commit + push
- 推送失败连续计数,达阈值(如 3 次)自动发告警(写日志),成功清零
- 快照目录可随时扩展(新增目录加到受保护列表即可)
二、恢复流程(误删/误覆盖后)
- 定位:列出某文件最近 N 个快照版本
powershell . D:\Scripts\snapshot_restore\snapshot_restore.ps1 Invoke-Main -Mode list -RelPath "相对路径\文件.md" -N 15 - 预览:确认要找回的版本(拿 list 里的 Hash)
powershell Invoke-Main -Mode preview -RelPath "相对路径\文件.md" -Hash <hash> - 导出:导出到仓库之外(默认 C:\tmp),不覆盖原位
powershell Invoke-Main -Mode export -RelPath "相对路径\文件.md" -Hash <hash> - 放回:人工确认导出内容正确后,手动复制回原位——脚本不替你决定覆盖
三、安全铁律(防止兜底工具自己变成事故)
- 恢复工具对工作区绝对只读:只 git log/show 读历史,从不写回
- 导出目标强制在仓库之外;落在仓库内直接拒绝(fail-closed)
- 取到的历史内容为空则拒绝导出(版本/路径不对时不产垃圾文件)
- 找回的版本放回原位由人工确认后手动执行
四、已知边界(诚实登记)
- 只能恢复到磁盘本地;整盘损坏靠远端(快照需配自动 push 才有远端兜底)
- 误操作发生在两次快照之间(间隔 5-15 分钟)会丢失该窗口改动
- 文件改名/移动需 git --follow 另行处理
五、分层配合
- 数据层(本 SOP):系统级快照 + 恢复——防误删、可回滚
- 应用层:产品内对话库快照 + 兜底看板——防流程数据丢失
- 两层叠加 = 完整的数据双保险叙事,可直接用于企业沟通