以下是备份和恢复 CentOS 8 系统的详细步骤,结合命令行工具和常用方案:
一、备份方法
1. 完整系统备份(推荐工具 tar
或 rsync
)
适用场景:系统文件和配置的完整备份(需临时停止服务)。
示例(使用 tar
):
sudo tar --exclude=/backup \ # 排除备份目录本身
--exclude=/proc \
--exclude=/sys \
--exclude=/dev \
--exclude=/tmp \
--exclude=/run \
--exclude=/mnt \
--exclude=/media \
-cvpzf /backup/centos8_full_$(date +%Y%m%d).tar.gz /
2. LVM 快照备份(避免停机)
适用场景:动态备份正在运行的系统(需 LVM 分区)。
步骤:
- 创建 LVM 快照(假设根卷为
centos/root
):sudo lvcreate -s -n root_snapshot -L 10G /dev/centos/root # 分配 10GB 空间
- 挂载快照并备份:
sudo mount /dev/centos/root_snapshot /mnt/snapshot sudo rsync -aAXv /mnt/snapshot/ /backup/centos8_backup/
- 删除快照:
sudo umount /mnt/snapshot sudo lvremove /dev/centos/root_snapshot
3. 使用 REAR
(Relax-and-Recover)
适用场景:企业级灾难恢复(支持 ISO 镜像生成)。
步骤:
- 安装并配置:
sudo dnf install epel-release sudo dnf install rear
- 编辑配置文件
/etc/rear/local.conf
:OUTPUT=ISO BACKUP=NETFS BACKUP_URL=file:///backup
- 生成恢复镜像:
sudo rear mkbackup # 生成 ISO 和备份到 /backup
4. 用户数据备份(rsync
)
适用场景:仅备份 /home
、/var
等关键数据。
示例:
sudo rsync -aAXv --delete /home /var /backup/userdata_$(date +%F)
5. 数据库备份(如 MySQL/PostgreSQL)
MySQL:
sudo mysqldump -u root -p --all-databases > /backup/mysql_full_$(date +%F).sql
PostgreSQL:
sudo pg_dumpall -U postgres > /backup/pgsql_full_$(date +%F).sql
二、恢复方法
1. 从 tar 备份恢复
前提:已通过 Live CD/USB 启动并挂载原系统分区。
步骤:
- 挂载根分区(假设为
/dev/mapper/centos-root
):sudo mount /dev/mapper/centos-root /mnt
- 解压备份:
sudo tar -xvpzf /path/to/backup.tar.gz -C /mnt --numeric-owner
- 修复引导:
sudo chroot /mnt grub2-install /dev/sda grub2-mkconfig -o /boot/grub2/grub.cfg exit
2. 使用 REAR 恢复
- 启动 REAR 生成的 ISO 镜像。
- 进入恢复模式后执行:
rear recover # 按提示选择备份和恢复目标磁盘
3. 从 rsync 备份恢复用户数据
sudo rsync -aAXv /backup/userdata/ /home/
三、关键注意事项
-
备份验证:
tar -tvzf backup.tar.gz # 检查 tar 备份文件列表 rsync -n -aAXv /backup/ /dummy # 模拟 rsync 恢复(测试一致性)
-
LVM 快照空间:
- 快照空间需足够容纳备份期间的写入数据,避免快照溢出。
-
数据库一致性:
- 备份前锁定数据库或启用事务日志(如 MySQL 的
--single-transaction
)。
- 备份前锁定数据库或启用事务日志(如 MySQL 的
-
定时任务(cron):
设置每周全量备份 + 每日增量备份:# 全量备份(每周日) 0 2 * * 0 tar -cvpzf /backup/full_$(date +\%F).tar.gz ... # 增量备份(每日凌晨) 0 2 * * 1-6 rsync -aAX --link-dest=/backup/full_latest / /backup/incr_$(date +\%F)
四、总结方案选择
场景 | 推荐工具/方法 | 优势 |
---|---|---|
系统级完整备份 | tar + rsync | 灵活可控 |
在线动态备份 | LVM 快照 | 零停机时间 |
企业级灾难恢复 | REAR | 自动生成可引导 ISO + 全盘恢复 |
用户数据备份 | rsync | 支持增量备份 |
数据库备份 | mysqldump /pgdump | 保证事务一致性 |
五、补充说明
-
CentOS 8 终止支持提醒:
CentOS 8 已于 2021 年底停止维护,建议迁移到替代系统(如 CentOS Stream、AlmaLinux 或 Rocky Linux),并在迁移前做好完整备份。 -
云环境备份:
若系统运行在云平台(如 AWS/Azure),可结合云厂商的快照功能(如 AWS EBS Snapshot)实现自动化备份。