站点运营

站点运营:备份与恢复演练,别等出事那天才第一次打开备份文件

备份平时没有存在感,出事时决定成败。这篇文章按站点运营的视角,梳理需要备份的内容清单、频率与保留策略、异地存放的三个注意点,以及一次完整的恢复演练该怎么走,帮助你在真正需要的时候能拿得出、装得上、跑得起来。

站点运营

站点运营:备份与恢复演练,别等出事那天才第一次打开备份文件

服务器磁盘故障、误删目录、插件升级冲突、站点被挂马,这些事发生之前通常没有任何预告。备份属于那种平时毫无存在感、出事时决定生死的工作。但很多站点的真实情况是:备份任务设了半年没人看,唯一一次打开备份文件是在事故当天。

先想清楚:丢什么最疼

备份范围不是越全越好,而是先列出「丢了会直接停摆」的东西,再按重要性排序。

  • 数据库:文章、用户、评论、设置项。这是绝大多数站长最先想到的,也常常是唯一被备份的。
  • 上传目录:图片、附件、视频。数据库里只有路径,文件本身没了,文章就是一堆红叉。
  • 代码与主题:自己改过的模板、函数文件、子主题。官方主题可以重下,改动过的那几行往往找不回来。
  • 配置文件:数据库连接信息、密钥、伪静态规则、定时任务列表。这些文件体积很小,漏掉却会让恢复卡住。
  • 证书与私钥:如果申请和管理是自己做的,最好单独留存一份。

把这份清单写下来,标出每一项的更新频率,后面的备份策略才有依据。

频率、保留份数与存放位置

频率跟着更新节奏走。内容日更的站点,数据库建议每天一次;更新不频繁的展示型站点,每周一次也够。附件目录变化少,可以降低频率,但不要完全不备。

  • 保留结构可以简单一些:日备留 7 份,周备留 4 份,月备留 6 到 12 份,形成由近及远的覆盖面。
  • 至少有一份不放在同一台服务器上。同一台机器上的备份,遇上磁盘故障或整机重装基本等于没有。
  • 备份文件要么加密,要么放在有访问控制的目录里,不要让它能被匿名下载。
  • 每次备份完成后记录体积。体积突然暴涨或暴跌,通常意味着备份过程出了问题,值得查一下。

三个常被忽略的细节

备份文件别放在网站根目录

有些一键脚本默认把压缩包丢在站点目录下,文件名又很好猜。一旦被扫到,数据库里的用户信息、后台账号就都暴露了。备份目录应当放在 web 根目录之外,或者用服务器层面禁止直接访问。

只备数据库不备附件

恢复之后文章都在,配图全丢,这种情况比想象中常见。附件目录要么一起打包,要么单独做同步。

恢复了才发现少了定时任务和伪静态

数据库和文件都还原了,结果缓存清理、订阅推送、备份自身的任务全没了;伪静态规则没恢复,内页直接 404。这类问题不影响登录,但会让站点功能残缺,排查起来很费时间。

恢复演练:按步骤走一遍

备份能不能用,只有恢复过才知道。建议每隔一段时间做一次演练,在本地或测试环境完整走一遍流程。

  1. 准备一个干净的测试环境,不要拿生产站当实验对象。
  2. 导入数据库,确认表前缀与备份时一致。
  3. 还原上传目录,检查文件和目录权限。
  4. 覆盖配置文件,按测试环境修改域名与路径。
  5. 依次打开首页、栏目页、详情页、后台、站内搜索。
  6. 检查图片是否正常显示,表单能否提交,伪静态是否生效。
  7. 记录整个恢复花了多少时间,以及中途遇到的所有问题。

演练的价值不在于证明备份完美,而在于把「到时候再说」变成一份写好的操作清单。真出事的时候,人往往是慌的,有清单和没清单差别很大。

备份任务本身也要照顾站点

导出大表、压缩大量附件都会占用磁盘和 CPU。如果服务器配置一般,可以把备份时间安排在访问低谷,避开蜘蛛抓取较集中的时段,避免因为响应变慢影响正常访问。备份失败的告警也要有人收,任务静默失败几个月,和没设任务区别不大。

备份的意义不在于硬盘上多了一个文件,而在于需要它的那天,你能在可接受的时间内把站点恢复起来。

建议把「检查备份是否成功」和「做一次恢复演练」写进日常维护清单,各自定一个周期。它们是那种做的时候看不出收益、不做的时候代价很高的活。