一、备份策略规划
  1. 确定备份目标

    • 关键数据:配置文件(/etc)、用户数据(/home)、日志(/var/log)、数据库

    • 系统全盘:可选整盘镜像(用于灾难恢复)

    • 应用程序:Web服务目录、代码仓库

  2. 选择备份类型

    • 全量备份:完整数据副本(每周一次)

    • 增量备份:仅备份变化数据(每日执行)

    • 差异备份:基于上次全量备份的变化(平衡存储与恢复效率)

  3. 存储介质选择

    • 本地存储:外接硬盘、NAS

    • 远程存储:SSH服务器、云存储(AWS S3、阿里云OSS)

    • 冷备份:离线存储防勒索病毒


二、文件系统备份操作

1. 使用tar打包备份

# 全量备份/home目录(保留权限,排除临时文件)
sudo tar -czvpPf /backup/full_backup_$(date +%Y%m%d).tar.gz \
  --exclude=/home/*/.cache \
  --exclude=/home/*/Downloads \
  /home

# 验证备份完整性
tar -tzvf /backup/full_backup_20231001.tar.gz | head -n 10

2. 增量备份(结合findrsync

# 增量备份(仅同步24小时内修改的文件)
rsync -avh --delete \
  --link-dest=/backup/last_full \
  --log-file=/backup/incr_$(date +%Y%m%d).log \
  /home/ \
  /backup/incr_$(date +%Y%m%d)/

3. 磁盘镜像备份(dd工具)

# 整盘备份(谨慎操作!确保目标设备容量足够)
sudo dd if=/dev/sda of=/mnt/external_disk/sda.img bs=4M status=progress

# 恢复镜像
sudo dd if=/mnt/external_disk/sda.img of=/dev/sda bs=4M status=progress

 4. 版本控制备份(rsnapshot

 

# 安装配置
sudo apt install rsnapshot
vim /etc/rsnapshot.conf
---
retain  daily   7
retain  weekly  4
backup  /home/      localhost/
backup  /etc/       localhost/
---
# 执行备份
rsnapshot daily
三、数据库备份

1. MySQL/MariaDB备份

# 全库逻辑备份(InnoDB推荐加--single-transaction)
mysqldump -u root -p --single-transaction --routines --triggers --events --all-databases > mysql_full.sql

# 二进制日志增量备份
sudo cp $(ls -t /var/lib/mysql/mysql-bin.0* | head -n1) /backup/mysql-bin-latest

 2. PostgreSQL备份

# 全库逻辑备份
pg_dumpall -U postgres > pg_full.sql

# 物理热备份(需开启归档模式)
rsync -av /var/lib/postgresql/ /backup/pg_data/

3. MongoDB备份 

# 全库导出
mongodump --host localhost --port 27017 --out /backup/mongodump_$(date +%Y%m%d)
四、自动化备份配置

1. 使用cron定时任务

 

# 编辑crontab
crontab -e
---
# 每天凌晨2点执行全量备份
0 2 * * * tar -czf /backup/full_$(date +\%Y\%m\%d).tar.gz /home /etc
# 每小时增量备份数据库
0 * * * * mysqldump -u root -pPASSWORD --flush-logs --all-databases > /backup/mysql_hourly.sql

 2. 备份加密(使用gpg

# 加密备份文件
gpg --output backup.tar.gz.gpg --encrypt --recipient backup@example.com backup.tar.gz

# 解密恢复
gpg --output backup.tar.gz --decrypt backup.tar.gz.gpg

3. 云存储备份(以AWS S3为例) 

 

# 安装AWS CLI
pip3 install awscli
aws configure

# 上传备份文件
aws s3 cp /backup/full.tar.gz s3://my-bucket/linux_backup/
五、备份验证与恢复测试
  1. 完整性检查

# 检查压缩包
gzip -t /backup/full.tar.gz && echo "OK" || echo "Corrupted"

# 校验MD5
md5sum /backup/full.tar.gz > backup.md5
md5sum -c backup.md5

     2.恢复演练

# 创建沙盒环境(使用虚拟机或容器)
docker run -it --rm -v /backup:/backup ubuntu bash

# 执行恢复操作(示例)
tar -xzvf /backup/full.tar.gz -C /restore
六、注意事项
  1. 备份策略原则

    • 3-2-1规则:3份副本、2种介质、1份异地

    • 定期清理旧备份:find /backup -type f -mtime +30 -delete

  2. 安全防护

    • 备份文件权限:chmod 600 /backup/*

    • 敏感数据加密:使用opensslgpg

  3. 监控报警

    • 检查备份日志:tail -f /var/log/backup.log

    • 磁盘空间监控:df -h | grep /backup


七、常用工具推荐
工具 用途
tar 文件打包压缩
rsync 增量同步
BorgBackup 去重加密备份
Timeshift 系统快照(GUI支持)
Rclone 多云存储同步
Duplicity 加密增量备份

提示

  • 生产环境建议先在小规模数据测试备份/恢复流程

  • 关键业务系统需配置异地灾备方案

  • 数据库备份期间避免长时间锁表(使用--single-transaction或低峰期操作)

 

 

Logo

有“AI”的1024 = 2048,欢迎大家加入2048 AI社区

更多推荐