很多站長對备份的態度是:脚本配好了,每天定时跑,硬盘里躺着一堆压缩包,心里就踏實了。但备份的價值從来不是“产生文件”,而是“能還原出可用的站点”。如果從没驗證過恢复流程,那些文件只能算心理安慰。
一份完整的站点备份该包含什么
只备份資料库是常见的偷懒做法。程序文件、模板、配置、證书私钥這些東西丢了,資料库再完整也拼不回原来的站点。
- 資料库全量導出:注意導出时的字符集和版本,跨版本導入经常出問题。
- 站点程序與上传目錄:用戶上传的图片、附件往往体积最大,也最容易被忽略。
- 服務器配置:Nginx 或 Apache 的站点配置、robots.txt、重定向規則、伪静態規則。
- 證书與密钥:SSL 證书、私钥、必要的环境變量文件。
- 定时任務與脚本:crontab 列表、备份脚本本身、部署脚本。
三個最常见的备份盲区
备份文件和站点在同一台机器上
硬盘故障、系統重装、誤删目錄,這三件事會同时带走站点和备份。至少留一份异地或對象存储的副本,成本不高,但能救命。
备份任務失敗没人知道
磁盘寫满、資料库帳號變更、密钥過期,都會让定时任務静默失敗。建议让备份脚本在結束时輸出一個明确的结果,失敗时通過邮件或短信告警,而不是只在日誌里留一行字。
没人测過恢复
备份文件能打開、能解压,不等于能恢复到可執行狀態。压缩包损坏、分卷缺失、導出中断只寫了一半,這些問题只有真正導一次才會暴露。
恢复演练怎么做
- 准备一台測試机或本地环境,不要在生产服務器上做演练。
- 按正常流程安装程序,導入資料库,覆盖上传目錄,恢复配置文件。
- 检查首頁、栏目頁、詳情頁是否正常打開,後台能否登入。
- 抽查若干條内容,確認图片、附件、發布時間等資料完整。
- 检查 robots.txt、重定向規則、SSL 配置是否随备份一起恢复。
- 记錄整個恢复過程耗时,作為故障时的预期參考。
频率和保留策略
没有统一标准,取决于更新频率和能承受丢失多少資料。
- 内容更新频繁的站点,資料库可以每天一次,程序文件每周一次。
- 低频更新的站点可以缩短到每周,但配置類文件建议每次修改後單獨存一份。
- 保留“近期多個版本 + 每月一個長期版本”,避免某個被感染的备份把干净版本覆盖掉。
- 定期清理過期备份,防止磁盘被塞满導致备份任務失敗。
判断备份是否可靠,标准只有一個:能不能在另一台机器上,把站点完整跑起来。
把演练寫進日常
可以把恢复演练排進季度或半年一次的运维清單,顺手更新记錄:备份存放位置、恢复步骤、所需帳號權限、大概耗时。人員變動时,這份记錄能让接手的人少走很多弯路。
备份這件事平时看不出收益,出事那天却是唯一的退路。花半天做一次演练,比事後补救便宜得多。