很多站点的备份策略可以用一句话概括:定时任务在跑,文件在生成,没人验证过。等到真的需要恢复的那天,才发现压缩包打不开、数据库缺了表、或者版本对不上。备份的价值不在于“每天生成一个文件”,而在于“出事时能在可接受的时间内把站点恢复成可用状态”。
先把“备份什么”列清楚
不同站点的构成差别很大,但基本逃不出这几类:
- 数据库:文章、用户、评论、配置表大多在这里,通常是最难重建的部分。
- 程序与模板文件:包括自己改过的主题、插件、配置文件。
- 上传目录:图片、附件、视频等静态资源,体积往往最大。
- 服务器配置:Web 服务配置、定时任务、SSL 证书、环境变量。
- 外部依赖:CDN、对象存储、DNS 解析记录,这些不在服务器上,但同样需要留档。
如果只备份了数据库,恢复后站点能打开却没有图片;只备份了文件,恢复后内容全是空的。所以第一步是列一张清单,写清楚每项从哪里取、大概多大、多久变一次。
恢复演练:把备份当成一次真实的搬家
演练不需要动生产环境,可以在本地或一台测试机上做,步骤大致如下:
- 从备份存储里取出最近一次的数据,不要特意挑“看起来最完整”的那份,就用正常流程会取的那份。
- 在干净环境里导入数据库、还原文件,按文档走一遍部署流程。
- 检查首页、栏目页、内容页、搜索页能否正常打开,图片和样式是否加载正常。
- 抽查几篇近期发布的内容,确认数据截止时间符合预期。
- 记录整个过程花了多久,哪些步骤卡住了,哪些命令是临时查的。
演练最大的收获往往不是“备份能用”,而是发现恢复步骤只存在于某个人的脑子里。把它写成一份能照着做的文档,比多买一块硬盘有用得多。
备份的存放与轮转
常见做法是保留最近若干天的每日备份、若干周的每周备份,再加一份月度归档。这样既能快速找回“昨天误删的文章”,也能应对“上个月被改坏的配置”。
存放位置建议至少分两处:一份在服务器本地,方便快速恢复;一份在异地存储或另一台机器上,防止服务器整体故障时全军覆没。需要提醒的是,放在同一台服务器、同一块盘上的备份,遇到磁盘损坏时等于没有。
备份文件本身也可能被误删或被加密勒索。给备份存储单独设置权限,避免用日常运维账号就能直接删掉全部历史版本。
几个容易踩的坑
- 只备份不检查大小:文件每天生成,但体积长期不变甚至只剩几 KB,很可能是任务早就失败了。
- 没有失败告警:定时任务静默失败是常态,至少让它在出错时发一条通知。
- 备份里混着敏感信息:配置文件、密钥打包在一起,传输和存放时要注意加密与权限。
- 恢复后忘记收尾:域名解析、证书、定时任务、缓存刷新,这些不在数据里,但一样影响站点能否正常访问。
和抓取的关系
站点长时间打不开,不只是访客受影响,搜索引擎爬虫多次访问失败后也会降低来访频率,恢复后需要一段时间才能回到原来的抓取节奏。把故障恢复时间从“天级”压到“小时级”,本身就是在减少对站点长期表现的影响。
小结
备份是一项平时看不出价值、出事时决定生死的工作。定期做一次真实演练,把恢复步骤写下来,确认备份文件能打开、数据完整、异地有副本,这几件事做完,站点运营的底就稳了一大半。