跳转至

17. 备份与恢复

本章节指导在 RHEL 9(主机名 LinuxDC)上使用 SecureCRT 进行备份与恢复操作,配合 SecureFX 传输备份文件。内容涵盖备份策略(rsync, tar, LVM 快照)、恢复流程(文件、系统、快照)和灾难恢复测试,全面实用,适合初学者快速掌握和运维人员日常维护。所有操作在 LinuxDC 环境中测试,确保实验一致性。


17.1 前提条件

  • RHEL 9 已安装(参考第 1 章),主机名设置为 LinuxDC
  • 使用 SecureCRT 登录(SSH2 协议,端口 2222,参考第 9 章)。
  • 使用 SecureFX 传输文件(SFTP 协议)。
  • 具有 root 或 sudo 权限。
  • 系统已订阅并启用 RHEL 仓库(参考第 2 章)。
  • LVM 分区已配置(参考第 15 章,假设逻辑卷 /dev/vg_data/lv_data)。
  • 备份目录 /backup 已创建并具有写权限。

💡 提示:备份策略应定期测试,以确保恢复可靠性。在 RHEL 10 中,备份工具如 rsync 支持更多集成加密选项,提升数据传输安全。


17.2 备份策略

17.2.1 使用 rsync 进行增量备份

  • 安装 rsync(默认包含):

    dnf install -y rsync  # 若缺失
    

  • 执行增量备份(示例:备份 /etc/backup):

    rsync -av --delete /etc /backup/etc-$(date +%F)  # 增量备份,删除已移除文件
    

🧠 知识点-a 保留权限,-v 详细输出,--delete 同步删除。适合目录同步。

17.2.2 使用 tar 创建归档备份

  • 创建 tar 备份(示例:备份 /etc/var):

    tar -czvf /backup/system-$(date +%F).tar.gz /etc /var  # 压缩备份
    

  • 验证备份完整性:

    tar -tzvf /backup/system-$(date +%F).tar.gz  # 列出内容验证
    

💡 提示-c 创建,-z gzip 压缩,-v 详细,-f 指定文件。适合全量备份。

17.2.3 使用 LVM 快照备份

  • 创建快照:

    lvcreate -L 5G -s -n snapshot /dev/vg_data/lv_data  # 创建 5G 快照
    lvdisplay /dev/vg_data/snapshot  # 查看快照状态
    

  • 备份快照数据:

    mount /dev/vg_data/snapshot /mnt/snapshot  # 挂载快照
    rsync -av /mnt/snapshot /backup/lvm-$(date +%F)  # 备份数据
    umount /mnt/snapshot  # 卸载
    lvremove -f /dev/vg_data/snapshot  # 删除快照
    

🧠 知识点:LVM 快照是写时复制(COW),适合一致性备份。监控大小避免溢出。

17.2.4 配置备份轮转脚本

  • 创建轮转脚本:

    vim /usr/local/bin/backup-rotate.sh
    # 添加:
    #!/bin/bash
    find /backup -mtime +7 -name "*.tar.gz" -exec rm {} \;  # 删除 7 天前备份
    chmod +x /usr/local/bin/backup-rotate.sh
    

  • 配置 cron 任务:

    crontab -e
    # 添加:
    0 3 * * * /usr/local/bin/backup-rotate.sh  # 每天 3:00 执行
    

检查点crontab -l 显示任务,老备份被删除。


17.3 恢复流程

17.3.1 文件恢复

  • 从 tar 恢复(示例:恢复 /etc/fstab):

    mkdir /tmp/restore
    tar -xzvf /backup/system-$(date +%F).tar.gz etc/fstab -C /tmp/restore  # 提取文件
    cp /tmp/restore/etc/fstab /etc  # 复制恢复
    

  • 从 rsync 恢复:

    rsync -av /backup/etc-$(date +%F) /etc  # 同步恢复
    

⚠️ 注意:恢复前备份当前文件,验证权限(chownchmod)。

17.3.2 系统恢复

  • 全系统恢复(从 tar):
    tar -xzvf /backup/system-$(date +%F).tar.gz -C /  # 提取到根目录
    reboot  # 重启验证
    

💡 提示:生产环境使用 bare-metal 恢复工具如 ReaR(dnf install -y rear)。

17.3.3 快照恢复

  • 合并快照恢复:
    lvconvert --merge /dev/vg_data/snapshot  # 合并快照到原 LV
    

🧠 知识点:快照恢复适合快速回滚。确保有足够空间。


17.4 灾难恢复测试

  • 测试备份:

    rsync -av --dry-run /etc /backup/etc-test  # 模拟备份
    tar -tzvf /backup/system-test.tar.gz  # 验证 tar
    

  • 测试恢复:

    mkdir /tmp/test-restore
    tar -xzvf /backup/system-test.tar.gz -C /tmp/test-restore  # 测试提取
    

检查点:无错误,文件完整。


17.5 常见问题与排查

🔍 故障排查

  • 问题 1:rsync 失败
    解决:检查权限(ls -l)、空间(df -h)、日志(journalctl -u cron)。

  • 问题 2:tar 损坏
    解决:验证完整性(tar -tvf),重新备份。

  • 问题 3:LVM 快照溢出
    解决:监控大小(lvs),增加空间(lvextend)。

  • 问题 4:cron 未执行
    解决:检查 crontab(crontab -l)、服务(systemctl status crond)。


17.6 实践任务

  1. 使用 SecureCRT 通过 SSH(端口 2222)登录 LinuxDC,使用 rsync 备份 /etc/backup
  2. 使用 tar 创建 /etc/var 的归档备份,验证完整性。
  3. 创建 LVM 快照并验证其状态。
  4. 配置备份轮转脚本,删除 7 天前的备份。

检查点:备份文件存在,快照创建成功,脚本执行删除旧文件。


17.7 自测问题

  • 问题 1:如何使用 rsync 进行增量备份?
    答案rsync -av /etc /backup/etc-$(date +%F)

  • 问题 2:如何恢复 /etc/fstab 文件?
    答案tar -xzvf /backup/system-$(date +%F).tar.gz etc/fstab -C /tmp/restore, 然后 cp /tmp/restore/etc/fstab /etc

  • 问题 3:如何创建 LVM 快照?
    答案lvcreate -L 5G -s -n snapshot /dev/vg_data/lv_data


🧾 总结
本章完整介绍了 RHEL 9 备份与恢复的操作流程,包括 rsync、tar 和 LVM 快照的使用。这些技能确保数据安全与可恢复性,为后续日志分析与监控提供持久化支持。