起因
其实这个事应该提早一个月就快要出现了,具体是啥事呢,很简单,就是服务器忘记续费了

上个月的图
上个月忘记续费的原因是当月那段时间在外面玩,完全没看邮箱(当然我是一个不怎么看邮箱的人,就算没在玩也大概率不会看)然后我的服务器探针在早些时候也死了没管
过期是 8/22,发现的时候是 8/24,然后看邮箱里

请输入文本
这玩意是当天过期当天删,,心里一想完了,不过转念一想一般这种服务商肯定有 PVE 的备份,然后去问问

有救吗
到这已经心凉了半截了,但是稍后他又说

有救了
我去。有救了

救活了
然后上个月就这样有惊无险的把服务器复活了
但这个人长记性吗?

梅 开 二 度
呵呵,这次过期是 9/24,但是发现是 9/28,已经过了3天了,想都不用想肯定没了
讽刺的是我上个月续费完给他点了一个「自动续费」
但!是!并没有在账户里留钱
全剧终
抢救
全剧终了吗,全剧终了就没这篇文章了
先理清一下思路,因为我是 Cloudflare 用户且开了 Always Online,理论上在 Wayback Machine 上会有记录

存了吗
看起来还有救?但实际上它连 posts 路径都没存,更别说最新的文章了

棍母
所以....怎么办,既然我们最重要的是文章正文,所以可以看看还未被惨遭删除的 Cloudflare 缓存的 /feed?

feed!
哦我的天哪居然真的有 feed,而且还是 markdown 原文
但是这有什么用呢,只有近期更新的
不对啊!我们的前端是 ISR,也就是说有可能所有的正文都在 Next.js 的缓存里!
紧急查看一下

docker ps
容器还在!看我一个 docker cp 给他全取出来

pull
拉到本地,然后打开它的 cache\fetch-cache 看到里面有一坨

cache\fetch-cache
别急,我们随便打开一个看看

wow
我去!居然是完整的文章原文

count
这里面有88个项,正好包含了所有 ISR 构建时从服务器拉取的东西(包含文章、页面、Shiro 的前端配置等一些东西)
然后就可以让溜溜梅给我们重新整合一下了

claude do my work

but something missing?
不过还是丢了点东西,,丢的东西里面包含了第二重要的 评论 那怎么办,难道要去翻邮箱的评论通知吗,,这玩意包含了3年多的数据,不太可能全找得到
抱着万念俱灰的心态拿 Everything 在电脑上搜索一下

everything?
诶这是什么

backup!
我去居然是原 mx-core 的完整备份,而且是我将 mx-core 用 Go 重写前的,也就是这是一坨完整到不能再完整的备份

claude help me!
交给溜溜梅恢复整合一下,GGs
最终战绩是除了丢了 3 月后的评论以外的完整恢复
反思
为什么 mx-core-go 的备份不工作
这个问题在第一次服务器过期的时候就想过了,当时想的原因可能是因为我把 S3 的服务器迁移过之后忘记改 endpoint 了
事实也确实是这样,我忘记改 endpoint 了,改完之后就再没管了
但是为什么还是没工作?
我回去看了源码才发现,

where is upload #1
在重写到 mx-core-go 的时候,在创建本地备份的时候忘记上传到 S3 了
也就是说,它在迁移到 mx-core-go 之后就没工作过

where is upload #2
更好笑的是,计划任务也确实跑了,但是都是仅本地
气笑了
为什么不记得服务器到期了
这个我觉得不能赖我了,,
因为我确实是一个不怎么看邮件的人,而且这家服务商也只有邮件通知
这下真知道大厂云为什么临近过期的时候要疯狂邮件短信电话轰炸了,,
好吧其实也赖我,因为我确实给「自动续费」打开了,但是没留钱,开了个滚木说是
措施?
所以这次我是真长记性了,买服务器一定买大厂云
备份一定要备份了
写的功能一定要亲自测试了
对于可能造成重大影响的事一定不能懒了
不过说实话这次也是真幸运了,一个主要原因是我在写 BareS3 的时候将我原 MinIO 的数据完整备份到本地了
另一个原因是本站前后端是在两台不同的服务器上的
总之谢天谢地,没让我酿成惨剧
谨此记录给记性不好的我