备份这件事,别等丢了数据才后悔

Cold 发布于 2023-10-22 37 次阅读 392 字 预计阅读时间: 2 分钟 日常杂谈


朋友的公司被勒索病毒加密了所有服务器,包括备份。因为没有离线备份,最后付了赎金。这事给我敲了警钟。

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

关键:验证恢复

备份不验证等于没有。定期做恢复演练,确认备份文件能解开、数据完整。我一般每季度恢复一次到测试环境。

其他注意

  • 备份文件加密,尤其是传公网
  • 备份账号权限最小化,别用主账号
  • 监控备份任务是否成功,失败要告警
  • 勒索病毒会加密已挂载的备份盘,离线备份很重要

数据丢了才知道备份重要,但那时候已经晚了。

和喜欢的一切在一起~
最后更新于 2023-10-22