朋友的公司被勒索病毒加密了所有服务器,包括备份。因为没有离线备份,最后付了赎金。这事给我敲了警钟。
3-2-1 原则
- 3 份数据:原始 + 两份备份
- 2 种介质:比如本地磁盘 + 对象存储
- 1 份异地:至少一份不在同一机房/同一云
我的备份方案
- 数据库:每天自动 dump,加密后上传对象存储
- 网站文件:每周全量,每天增量
- 重要文档:本地 + 网盘 + 移动硬盘
- 代码:Git 推送到多个远程仓库
备份脚本示例
#!/bin/bash
DATE=$(date +%Y%m%d)
BACKUP_DIR=/tmp/backup
mkdir -p $BACKUP_DIR
# 数据库备份
mysqldump -u user -p'pass' dbname | gzip > $BACKUP_DIR/db-$DATE.sql.gz
# 文件备份
tar czf $BACKUP_DIR/files-$DATE.tar.gz /var/www/wordpress
# 上传到对象存储(用 rclone)
rclone copy $BACKUP_DIR remote:mybucket/backup/
# 清理本地临时文件
rm -rf $BACKUP_DIR
# 清理 30 天前的远程备份
rclone delete remote:mybucket/backup/ --min-age 30d
关键:验证恢复
备份不验证等于没有。定期做恢复演练,确认备份文件能解开、数据完整。我一般每季度恢复一次到测试环境。
其他注意
- 备份文件加密,尤其是传公网
- 备份账号权限最小化,别用主账号
- 监控备份任务是否成功,失败要告警
- 勒索病毒会加密已挂载的备份盘,离线备份很重要
数据丢了才知道备份重要,但那时候已经晚了。

Comments 3 条评论
3-2-1 原则记下了
勒索病毒会加密挂载的备份盘,长见识
备份不验证等于没备份,认同