服务器被黑、磁盘暴毙、升级手滑删库,事故永远比你想象的来得早。没备份的站死一次就归零,有备份的站死一次只是虚惊。这个系列之前在 AI 编程方向写过一篇用 AI 写自动备份脚本并做验收的文章,那篇讲的是怎么借 AI 把脚本写对;这篇讲备份体系本身——备什么、多久备一次、放哪里、以及最容易被跳过的一步:恢复演练。
WordPress 站的备份就两样东西:全站文件(主题、插件、上传目录 wp-content,核心程序丢了可重下)加一份数据库导出。文章、评论、用户、插件配置全在库里,mysqldump 导出成 SQL 文件,和文件一起打包。频率按内容更新节奏定:日更站每日一备,周更站每周一备,原则是最大可容忍丢失量不超过两个备份周期。留存策略别贪多:本地留最近 7 天,滚动删除旧的,防止磁盘被备份自己塞满。
#!/bin/bash
# /opt/backup_site.sh 每日凌晨3点 cron 执行
D=$(date +%F)
DIR=/var/backups/site
mkdir -p $DIR
# 数据库导出 + 文件打包
mysqldump -u wpuser -p"库密码" wordpress \
| gzip > $DIR/db_$D.sql.gz
tar czf $DIR/files_$D.tar.gz -C /var/www example.com
# 滚动清理7天前的本地备份
find $DIR -mtime +7 -delete
# 异地同步(rclone 支持S3/OSS/COS等几十种存储)
rclone sync $DIR remote:site-backups
这套脚本里最有价值的是最后一步:异地同步。备份和网站放在同一台服务器上等于没备份——机器整个没了,备份陪葬。行业里的 3-2-1 原则说得很直白:三份副本、两种介质、一份异地。rclone 配好一个对象存储桶(各家云都有免费或几块钱的低频存储档位),sync 命令增量同步,一天几毛钱的成本买一个“服务器全灭也不怕”的底气。
恢复演练是备份体系的最后一公里,也是多数人欠的账。备份的价值只有在恢复成功那一刻才兑现,而恢复脚本的坑(路径写反、数据库密码改过、gzip 文件损坏)只有演练时暴露。流程写成肌肉记忆:tar 解包到临时目录,gunzip 解出 SQL 导入一个临时库,起一个测试站点指向它,前台后台走一遍。每季度演练一次,或者每次大改动后演练一次。另外提醒一句:备份文件里含全库明文数据,对象存储桶的访问权限务必锁成私有,别让备份桶变成别人的下载站。至此,建站四件套——环境、HTTPS、程序、备份——全部就位,下一篇聊要不要用面板管这台机器。
相关阅读:备份体系上线当天就该建。《从零建站第一步:技术栈选型总纲,别一上来就纠结框架》把本篇排在上线组的收尾位——站点能访问只是起点,能恢复才算上线完成,总纲里加固组接着排。
申请创业报道,分享创业好点子。点击此处,共同探讨创业新机遇!
