静态生成站防覆盖守护

如果你的站点是定时任务重新生成的(爬虫抓数据 → 生成 HTML → 拷贝到站点目录), 那么有一条铁律:永远不要直接改生成出来的 HTML。 我们在 rentgpu.link 上吃过这个亏:手工改好的 876 个页面,被定时任务一次全部覆盖,几个小时的工作归零。 这个工具生成一份守护脚本,盯住产物有没有被人手改过,并给你一套不会丢工作的改动流程。

免费 · 无需登录 本地生成 · 内容不上传 对应事故 · 876 个页面被 cron 冲掉

1目录与命令

记住唯一正确的改动流程

输出 1守护脚本 guard.sh

0 行
—
放到 /usr/local/bin/guard.sh,先跑一次 guard.sh snapshot 建立基线,再挂 guard.sh check 到 cron。

输出 2crontab 配置

0 行
—

自检你的生成站安全吗

这个坑我们踩过

1 · 876 个页面被一次覆盖。在 rentgpu.link 上,我们直接改了生成出来的 876 个 HTML。当天 18:07 的定时任务跑完,全部被冲掉——因为产物不是数据源,生成器模板才是。正确做法是改 scripts/build_site.py 里的模板,再手动跑一次生成 + 发布。

2 · 多语言产物要一起改。同一个站有 /en /ja /ko /tw 四套产物,共 766 页。只改中文那一套,其它语言版本会不一致。

3 · 以为是"改了没生效",其实是被冲掉了。排查时先 grep 产物目录确认内容在不在,再去看 cron 日志,能省一小时。

4 · 改动前先整包备份。我们每次动生成站都先 tar czf /root/backups/xxx-$(date +%s).tar.gz <目录>,回滚只花 30 秒。