Appearance
17. 备份与恢复
本章节指导在 RHEL 8.10(主机名 ZSLinux)上使用 SecureCRT 进行备份与恢复操作,配合 SecureFX 传输备份文件。内容涵盖备份策略(rsync, tar, LVM 快照)、恢复流程(文件、系统、快照)和灾难恢复测试,全面实用,适合初学者快速掌握和运维人员日常维护。所有操作在 ZSLinux 环境中测试,确保实验一致性。
17.1 前提条件
- RHEL 8.10 已安装(参考第 1 章),主机名设置为
ZSLinux. - 使用 SecureCRT 登录(SSH2 协议,端口 2222,参考第 6 章).
- 使用 SecureFX 传输文件(SFTP 协议).
- 具有 root 或 sudo 权限.
- 系统已订阅并启用 RHEL 仓库(参考第 4 章).
- LVM 分区已配置(参考第 9 章,假设逻辑卷
/dev/vg_data/lv_data). - 备份目录
/backup已创建并具有写权限.
17.2 备份配置
17.2.1 rsync 增量备份
- 配置增量备份:bash
rsync -av --progress /etc /backup/etc-$(date +%F) # 增量备份 /etc 目录,显示进度
17.2.2 tar 归档备份
- 创建归档备份:bash
tar -zcvf /backup/system-$(date +%F).tar.gz /etc /var # 创建 /etc 和 /var 的压缩备份 tar -tzf /backup/system-$(date +%F).tar.gz # 验证备份文件完整性
17.2.3 LVM 快照备份
- 创建 LVM 快照:bash
lvcreate -L 5G -s -n snapshot /dev/vg_data/lv_data # 创建 5GB 快照
17.2.4 配置备份轮转
- 创建轮转脚本:bash
vim /usr/local/bin/backup_rotate.sh # 创建备份轮转脚本 # 添加: #!/bin/bash BACKUP_DIR="/backup" find $BACKUP_DIR -name "etc-*.tar.gz" -mtime +7 -delete # 删除 7 天前的 tar 备份 find $BACKUP_DIR -name "etc-*" -mtime +7 -delete # 删除 7 天前的 rsync 备份 chmod +x /usr/local/bin/backup_rotate.sh # 添加执行权限 - 配置定时任务(参考第 14 章):bash
crontab -e # 编辑 crontab # 添加: 0 1 * * * /usr/local/bin/backup_rotate.sh # 每天 01:00 执行轮转
17.3 恢复流程
17.3.1 文件和目录恢复
- 从
tar恢复文件:bashtar -xzvf /backup/system-$(date +%F).tar.gz -C /tmp/restore # 解压备份到 /tmp/restore cp -r /tmp/restore/etc/fstab /etc/fstab # 恢复特定文件
17.3.2 系统级恢复
- 模拟系统恢复(从
tar备份):bashmkdir /mnt/restore # 创建恢复挂载点 tar -xzvf /backup/system-$(date +%F).tar.gz -C /mnt/restore # 解压备份 rsync -av /mnt/restore/etc/ /etc/ # 恢复 /etc 目录
17.3.3 LVM 快照恢复
- 恢复 LVM 快照:bash
lvconvert --merge /dev/vg_data/snapshot # 合并快照到原始逻辑卷
17.3.4 灾难恢复测试
- 模拟系统崩溃恢复:bash
mkdir /mnt/restore # 创建恢复挂载点 tar -xzvf /backup/system-$(date +%F).tar.gz -C /mnt/restore # 解压系统备份 rsync -av --exclude=/proc --exclude=/sys /mnt/restore/ / # 恢复系统文件 reboot # 重启验证恢复
17.4 验证
- 验证
rsync备份:bashrsync --dry-run -av /etc /backup/etc-$(date +%F) # 模拟备份,检查文件一致性 - 验证
tar备份:bashtar -tzf /backup/system-$(date +%F).tar.gz # 检查备份文件内容 - 验证 LVM 快照:bash
lvs # 检查快照状态 - 验证恢复:bash
ls -l /tmp/restore/etc # 检查恢复的文件 diff /etc/fstab /tmp/restore/etc/fstab # 比较恢复文件与原文件 - 验证轮转:bash
/usr/local/bin/backup_rotate.sh # 运行轮转脚本 ls -l /backup # 检查旧备份是否删除 - 测试 SSH 连接:bash
ssh -p 2222 testuser@ZSLinux # 测试 SSH 连接(参考第 6 章) - 常见问题:
- 备份失败:检查
/backup权限(chmod 755 /backup)或磁盘空间(df -h)。 - 恢复文件丢失:验证备份完整性(
tar -tzf)或检查rsync路径。 - LVM 快照失败:确认逻辑卷空间(
lvs)或快照大小(lvcreate -L)。
- 备份失败:检查
17.5 实践任务
- 使用 SecureCRT 登录
ZSLinux,使用rsync备份/etc到/backup. - 使用
tar创建/etc和/var的归档备份,验证完整性。 - 创建 LVM 快照并验证其状态。
- 配置备份轮转脚本,删除 7 天前的备份。
17.6 自测问题
- 问题:如何使用
rsync进行增量备份?- 答案:
rsync -av /etc /backup/etc-$(date +%F)
- 答案:
- 问题:如何恢复
/etc/fstab文件?- 答案:
tar -xzvf /backup/system-$(date +%F).tar.gz etc/fstab -C /tmp/restore, 然后cp /tmp/restore/etc/fstab /etc
- 答案:
- 问题:如何创建 LVM 快照?
- 答案:
lvcreate -L 5G -s -n snapshot /dev/vg_data/lv_data
- 答案:
