去年一个客户的VPS因为误操作删了一个重要目录,没有备份,数据直接没了。这种事情其实可以避免,只要提前做好备份。

这篇文章介绍三种备份方式,选一种适合你的。
方式一:快照备份
快照是VPS某个时间点的完整磁盘镜像。就像给服务器拍了一张”照片”,恢复的时候直接还原到拍照时的状态。
萤光云支持快照功能,操作简单。
创建快照:
1. 进入控制台找到对应服务器
2. 点击”快照 – 创建快照”
3. 输入快照名称(方便区分)
4. 确认创建
恢复快照:
1. 在快照列表中选择要恢复的快照
2. 点击”恢复”
3. 确认操作
4. 等待恢复完成(服务器会自动重启)
快照的特点:
– 备份速度快,通常几分钟完成
– 恢复速度快,直接还原整个磁盘
– 占用存储空间(按快照大小计费)
– 适合定期自动备份
快照计费: 快照占用独立的存储空间,按GB计费。建议只保留必要数量的快照,定期清理过期的。
方式二:手动备份
手动备份是把需要保护的文件和数据库通过SCP、SFTP等方式下载到本地或另一台服务器。
备份网站文件:
# 在本地电脑执行,把服务器上的网站目录下载到本地
scp -r root@服务器IP:/var/www/html ~/backup/
备份数据库(MySQL):
# 在服务器上执行,导出数据库
mysqldump -u root -p 数据库名 > backup.sql
# 下载到本地
scp root@服务器IP:~/backup.sql ~/backup/
备份配置文件:
# 备份Nginx配置
scp root@服务器IP:/etc/nginx/nginx.conf ~/backup/
# 备份防火墙规则
ssh root@服务器IP "iptables-save" > ~/backup/iptables.rules
手动备份的优点是灵活,可以只备份需要的内容,节省空间。缺点是需要手动操作,容易忘记。
方式三:自动备份脚本
设置一个定时任务,每天自动备份数据库和文件。
创建备份脚本:
#!/bin/bash
# /root/backup.sh
BACKUP_DIR="/root/backups"
DATE=$(date +%Y%m%d)
mkdir -p $BACKUP_DIR
# 备份MySQL
mysqldump -u root -p你的密码 --all-databases > $BACKUP_DIR/db_$DATE.sql
# 备份网站文件
tar czf $BACKUP_DIR/web_$DATE.tar.gz /var/www/html
# 删除7天前的备份
find $BACKUP_DIR -name "*.sql" -mtime +7 -delete
find $BACKUP_DIR -name "*.tar.gz" -mtime +7 -delete
设置定时执行:
chmod +x /root/backup.sh
crontab -e
# 每天凌晨3点执行备份
0 3 * * * /root/backup.sh
备份策略建议
根据数据重要性选择备份频率:
| 数据类型 | 建议备份频率 | 备份方式 |
|---|---|---|
| 生产数据库 | 每天 | 自动备份脚本 |
| 网站文件 | 每周 | 快照或手动 |
| 系统配置 | 修改时 | 快照 |
| 临时数据 | 不需要 | – |
3-2-1备份原则: 至少保留3份备份,存储在2种不同的介质上,其中1份在异地。
对于关键业务,建议:
– 每天自动备份数据库
– 每周创建一次快照
– 定期把备份文件同步到另一台服务器或本地
恢复数据
从快照恢复: 在控制台选择快照 → 恢复,整个磁盘还原到快照时的状态。
从SQL文件恢复数据库:
mysql -u root -p 数据库名 < backup.sql
从压缩包恢复文件:
tar xzf web_backup.tar.gz -C /var/www/html
你可能在想
快照和手动备份哪个好?
快照操作简单、恢复快,但要付费。手动备份免费、灵活,但需要自己维护。建议两者结合:定期快照做系统级备份,定期手动备份做关键数据备份。
快照占多少空间?
快照占用的空间取决于磁盘使用率,不是整个磁盘大小。通常占用实际数据量的70%-90%。
能不能把备份存到另一台VPS?
可以,而且推荐这样做。用rsync定时同步到另一台服务器,实现异地备份。














