2025 年 8 月,有个客户网站被勒索病毒加密,所有文件被锁。
黑客要价 5 万,没给赎金,数据全丢。
更惨的是,备份也是空的——备份脚本写了但没执行。
最后花了 3 个月恢复数据,损失订单 100 万+。
网站备份不是可选项,是必选项。
今天分享完整的备份方案,从本地到云端到异地。
一、备份什么?
1. 网站文件
- 程序文件(PHP、HTML 等)
- 主题/模板
- 插件/扩展
- 上传文件(图片、视频等)
- 配置文件
2. 数据库
- 文章内容
- 用户数据
- 订单数据
- 配置信息
3. 其他数据
- SSL 证书
- 域名配置
- 邮箱数据
- 日志文件(可选)
二、3-2-1 备份原则
原则:
- 3 份数据(1 份原件 +2 份备份)
- 2 种介质(本地 + 云端)
- 1 份异地(不同地理位置)
示例:
原件:服务器上的网站
备份 1:本地硬盘(每天)
备份 2:云端存储(每天)
备份 3:异地服务器(每周)
三、本地备份(第 1 道防线)
备份方式 1:手动备份
步骤:
- 登录服务器(FTP/SSH)
- 下载网站全部文件
- 导出数据库(phpMyAdmin)
- 保存到本地硬盘
优点:简单、可控
缺点:容易忘、耗时
建议:仅适合小网站,每周 1 次
备份方式 2:自动备份脚本
Linux 脚本示例:
#!/bin/bash
# 备份目录
BACKUP_DIR="/backup"
# 网站目录
WEB_DIR="/www/wwwroot/your-site"
# 数据库信息
DB_NAME="your-db"
DB_USER="your-user"
DB_PASS="your-pass"
# 备份文件名
DATE=$(date +%Y%m%d_%H%M%S)
FILE_NAME="backup_$DATE.tar.gz"
# 备份网站文件
tar -czf $BACKUP_DIR/files_$DATE.tar.gz $WEB_DIR
# 备份数据库
mysqldump -u$DB_USER -p$DB_PASS $DB_NAME > $BACKUP_DIR/db_$DATE.sql
# 压缩
tar -czf $BACKUP_DIR/$FILE_NAME $BACKUP_DIR/files_$DATE.tar.gz $BACKUP_DIR/db_$DATE.sql
# 删除临时文件
rm $BACKUP_DIR/files_$DATE.tar.gz $BACKUP_DIR/db_$DATE.sql
# 删除 7 天前备份
find $BACKUP_DIR -name "backup_*.tar.gz" -mtime +7 -delete
优点:自动、省心
缺点:需要技术能力
备份方式 3:主机商备份
常见主机商备份:
- 阿里云:自动快照(收费)
- 腾讯云:自动快照(收费)
- 西部数码:自动备份(部分免费)
优点:方便、一键恢复
缺点:同服务器,风险共担
建议:作为补充,不能替代独立备份
四、云端备份(第 2 道防线)
推荐服务 1:阿里云 OSS
| 价格 | 0.12 元/GB/月 |
| 容量 | 无限制 |
| 可靠性 | 99.999999999% |
| 访问速度 | 快(国内 CDN) |
推荐服务 2:腾讯云 COS
| 价格 | 0.12 元/GB/月 |
| 容量 | 无限制 |
| 可靠性 | 99.999999999% |
| 访问速度 | 快(国内 CDN) |
推荐服务 3:七牛云
| 价格 | 0.12 元/GB/月 |
| 免费额度 | 10GB 存储 +10GB 流量 |
| 可靠性 | 99.999999999% |
适合:小网站(免费额度够用)
推荐服务 4:Backblaze B2(海外)
| 价格 | 0.005 美元/GB/月 |
| 免费额度 | 10GB |
| 可靠性 | 99.999999999% |
适合:海外网站、预算有限
五、异地备份(第 3 道防线)
方案 1:另一台服务器
怎么做:
- 租一台便宜服务器(不同城市)
- 定时同步备份文件
- 每周全量备份
成本:50-100 元/月
方案 2:朋友服务器
怎么做:
- 找有服务器的朋友
- 放一份备份在他那
- 定期更新
成本:免费(请吃饭)
方案 3:办公室/家里
怎么做:
- 买个大容量硬盘
- 每周下载备份
- 放办公室或家里
成本:硬盘钱(500-1000 元)
六、备份频率建议
| 网站类型 | 文件备份 | 数据库备份 | 保留周期 |
|---|---|---|---|
| 企业官网 | 每周 | 每天 | 30 天 |
| 电商网站 | 每天 | 每小时 | 90 天 |
| 内容网站 | 每周 | 每天 | 60 天 |
| SaaS 系统 | 每天 | 每小时 | 180 天 |
七、恢复测试(最重要)
为什么要测试?
- 备份可能是坏的
- 恢复流程可能不熟
- 真出事时没时间摸索
测试频率:
- 小网站:每季度 1 次
- 电商网站:每月 1 次
- 重要系统:每周 1 次
测试步骤:
- 准备测试环境
- 从备份恢复
- 验证网站功能
- 记录恢复时间
- 优化恢复流程
八、完整备份方案(推荐)
小网站(预算 500 元/年):
【本地】自动备份脚本(每天)
【云端】七牛云 10GB 免费(每天)
【异地】硬盘备份(每周)
【测试】每季度恢复测试 1 次
中网站(预算 2000 元/年):
【本地】自动备份脚本(每天)
【云端】阿里云 OSS(每天)
【异地】另一台服务器(每周)
【测试】每月恢复测试 1 次
大网站(预算 1 万+/年):
【本地】自动备份脚本(每小时)
【云端】阿里云 OSS(每小时)
【异地】跨区域服务器(每天)
【容灾】双机热备
【测试】每周恢复测试 1 次
九、备份检查清单
【备份配置】
□ 网站文件备份已配置
□ 数据库备份已配置
□ 自动备份已启用
□ 备份频率合理
【备份存储】
□ 本地备份(每天)
□ 云端备份(每天)
□ 异地备份(每周)
□ 符合 3-2-1 原则
【备份验证】
□ 定期恢复测试
□ 备份文件完整性检查
□ 恢复流程文档化
【监控告警】
□ 备份失败告警
□ 备份空间不足告警
□ 定期备份报告
常见误区
误区 1:有备份脚本=有备份
脚本写了但没执行,或者执行失败没人管。
正确做法:监控备份状态,失败告警。
误区 2:备份在同一服务器
服务器挂了,备份一起没。
正确做法:异地备份。
误区 3:不测试恢复
备份是好的,但不会恢复。
正确做法:定期测试恢复。
误区 4:备份不加密
备份文件泄露,数据全暴露。
正确做法:敏感数据加密备份。
最后说两句
网站备份就像买保险,希望永远用不上,但必须得有。
平时花点时间配置好,出事了能救命。
记住:没有备份的网站,就是在裸奔。
(如果需要网站备份方案咨询,可以联系我们,免费做一次备份评估)