CentOS分卷备份与恢复实用指南
一、场景与工具选择
二、方案一 使用 tar + split 实现分卷打包与恢复
# 安装工具
yum -y install tar
# 备份并分卷(-j 为 bzip2;-L 指定每卷大小)
tar cvpjf - /data --exclude=/data/lost+found \
| split -b 500M -d -a 3 - /backup/data_$(date +%F).tar.bz2.
# 生成校验(可选)
sha256sum /backup/data_*.tar.bz2.* > /backup/data_$(date +%F).sha256
# 校验(可选)
sha256sum -c /backup/data_$(date +%F).sha256
# 合并分卷并解压到 /restore(注意结尾的点“.”)
cat /backup/data_*.tar.bz2.* | tar xvpfj - -C /restore
# 若需保留 SELinux 上下文(系统目录恢复时建议)
restorecon -Rv /restore
三、方案二 分区级备份与恢复(ext2/3/4 与 XFS)
ext2/3/4 使用 dump/restore(支持 0–9 级增量)
yum -y install dump
# 0 级全备(-u 记录到 /etc/dumpdates;-j 启用 bzip2)
dump -0uj -f /backup/boot_0.bz2 /boot
# 1 级增量(基于上一次同层级或更低层级)
dump -1uj -f /backup/boot_1.bz2 /boot
cat /etc/dumpdates
dump -W
# 先 0 级
cd /restore/boot && restore -r -f /backup/boot_0.bz2
# 再 1 级(如有更多层级依次执行)
cd /restore/boot && restore -r -f /backup/boot_1.bz2
XFS 使用 xfsdump/xfsrestore
yum -y install xfsdump
xfsdump -l 0 -L "boot_$(date +%F)" -f /backup/boot.dump /boot
xfsdump -l 1 -L "boot_$(date +%F)_inc" -f /backup/boot_inc.dump /boot
xfsrestore -f /backup/boot.dump -L "boot_$(date +%F)" /restore/boot
# 如需仅恢复子目录/文件
xfsrestore -f /backup/boot.dump -s grub2/grub.cfg /restore/boot
四、方案三 LVM 快照实现在线一致性备份
# 1) 创建只读快照(大小按变更量评估,需有空闲空间)
lvcreate -s -L 2G -n mylv_snap -p r /dev/vg0/mylv
# 2) 挂载快照并备份(以 XFS 为例;ext 文件系统可用 dump/restore)
mkdir -p /mnt/snap
mount /dev/vg0/mylv_snap /mnt/snap
# 2.1) 分卷打包(示例每卷 500MB)
tar cvpjf - /mnt/snap | split -b 500M -d -a 3 - /backup/mylv_$(date +%F).tar.bz2.
# 或 2.2) XFS 专用
# xfsdump -l 0 -L "mylv_$(date +%F)" -f /backup/mylv.dump /mnt/snap
# 3) 卸载并删除快照
umount /mnt/snap
lvremove /dev/vg0/mylv_snap
五、关键注意事项与最佳实践