很多站点在出事之前都觉得自己“有备份”:主机商说每天备份,插件说自動备份,自己偶尔也下载一份資料库。真到誤删、被入侵或者服務器挂掉的那天,才發現备份要么缺了一半,要么根本恢复不回来。备份的價值不在文件躺在哪里,而在需要的时候能不能在可接受的時間内,把站点還原成一個能用的狀態。
先分清:备份、冗余和快照不是一回事
冗余解决的是硬件故障,比如磁盘做 RAID,但誤删和勒索软件會照样同步過去。快照适合短時間回滚,通常和原服務器在同一套存储里,机房整体出問题时一起消失。备份要求的是獨立存储、可校驗、可恢复。三者可以同时存在,但不能互相替代。
一份能用的备份應该覆盖什么
- 資料库:文章、用戶、评论、配置項,通常是恢复时最關键的部分;
- 上传目錄與媒体附件:图片、视频、下载文件,往往体积最大也最容易被漏掉;
- 主题、插件與自定义代碼:尤其是直接改過服務器上文件的情况;
- 配置文件:Web 服務器規則、伪静態、环境變量、定时任務脚本;
- 證书與密钥:續期文件和私钥丢了,恢复後還要重新申請;
- 資料库帳號、队列與缓存组件的配置說明,方便在新机器上快速搭起来。
频率與分层:別用一套策略應付所有内容
- 高频层:資料库增量或每日全量,覆盖当天新增内容;
- 中频层:整站文件加資料库,每周一次,保留若干份歷史版本;
- 低频层:每月或每季度归档一份到异地,用于應對長期未被發現的篡改。
保留策略要寫清楚:保留多久、只留最新還是保留多份、谁有權刪除。只往一個目錄里堆备份文件,最後往往是磁盘被寫满,新备份悄悄失敗。
恢复演练:把“應该能恢复”變成“确實恢复過”
- 找一台與生产环境隔离的机器或临时环境;
- 從备份取最新一份,按文档走完整流程,不跳步骤;
- 检查站点能否打開、後台能否登入、附件能否顯示、伪静態是否正常;
- 记錄耗时:從開始到站点可用一共花了多少分钟;
- 把遇到的問题补進恢复文档,比如某個插件需要單獨配置,某條規則没被备份進去。
演练不需要每次都很正式,但最好固定周期,比如一個季度一次。流程没跑過,就等于没有流程。
常见誤区
- 备份文件和站点在同一块盘、同一台机器上;
- 只备份資料库,恢复後發現图片和附件全丢;
- 备份文件没有校驗,解压时才發現损坏;
- 备份里带着舊域名和舊路径,恢复後忘了替換;
- 没有记錄备份時間和版本,恢复时不知道该用哪一份;
- 备份文件權限過宽,或者放在可被公網訪問的目錄里。
判断备份是否可靠,最简單的問题是:如果現在服務器全部丢失,你能在多長時間内让站点重新可訪問?答不上来,就說明该做一次演练了。
让备份也進入日常监控
把备份任務的成功與失敗接入告警,失敗时能收到通知,而不是等几個月後翻目錄,才發現最近的文件日期停在很久以前。同时定期抽查备份文件能否解压、体积是否異常,必要时對關键目錄做一次哈希核對。备份日誌與恢复记錄也建议保留,谁在什么时候恢复過、恢复的是哪一份,日後排查内容差异时會用得上。
备份這件事没有一劳永逸的做法,站点内容在變、依赖在變、经手的人也在變,策略要跟着調整。把它当成常規运营的一部分,比出事之後临时找文件要從容得多。