Linux系统数据备份详细操作步骤
Linux系统下数据备份操作步骤指南,涵盖文件系统备份、数据库备份及自动化方案
一、备份策略规划
-
确定备份目标
-
关键数据:配置文件(
/etc)、用户数据(/home)、日志(/var/log)、数据库 -
系统全盘:可选整盘镜像(用于灾难恢复)
-
应用程序:Web服务目录、代码仓库
-
-
选择备份类型
-
全量备份:完整数据副本(每周一次)
-
增量备份:仅备份变化数据(每日执行)
-
差异备份:基于上次全量备份的变化(平衡存储与恢复效率)
-
-
存储介质选择
-
本地存储:外接硬盘、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. 增量备份(结合find和rsync)
# 增量备份(仅同步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/
五、备份验证与恢复测试
-
完整性检查
# 检查压缩包
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
六、注意事项
-
备份策略原则
-
3-2-1规则:3份副本、2种介质、1份异地
-
定期清理旧备份:
find /backup -type f -mtime +30 -delete
-
-
安全防护
-
备份文件权限:
chmod 600 /backup/* -
敏感数据加密:使用
openssl或gpg
-
-
监控报警
-
检查备份日志:
tail -f /var/log/backup.log -
磁盘空间监控:
df -h | grep /backup
-
七、常用工具推荐
| 工具 | 用途 |
|---|---|
tar |
文件打包压缩 |
rsync |
增量同步 |
BorgBackup |
去重加密备份 |
Timeshift |
系统快照(GUI支持) |
Rclone |
多云存储同步 |
Duplicity |
加密增量备份 |
提示:
生产环境建议先在小规模数据测试备份/恢复流程
关键业务系统需配置异地灾备方案
数据库备份期间避免长时间锁表(使用
--single-transaction或低峰期操作)
更多推荐


所有评论(0)