温馨提示×

如何在FetchLinux中进行数据备份

小樊
40
2025-11-22 22:29:43
栏目: 智能运维

FetchLinux 数据备份实用指南

一 概念澄清与总体思路

  • 在运维语境中,FetchLinux常被两种用法提及:其一,作为从远程服务器拉取文件的命令行工具;其二,被误指为Linux 发行版包管理器。无论哪种场景,备份都可以分为两类:一是用 FetchLinux 从远端拉取数据的“远程拉取备份”,二是系统层面的“本地/整盘备份”。下面分别给出可落地的做法与命令示例。

二 使用 FetchLinux 从远程服务器备份

  • 适用前提:你已安装 FetchLinux,并可通过 SSH 访问远端主机。
  • 基本步骤
    1. 在本地创建包含待备份路径的清单文件,例如 filelist.txt,每行一个绝对路径
      /home/user/documents
      /home/user/downloads
      /var/www
      
    2. 使用 FetchLinux 递归拉取并保存到本地备份目录:
      fetchlinux -r -f filelist.txt -o /path/to/backup
      
    3. 常用选项
      • -r / --recursive:递归下载目录
      • -f / --filelist:指定路径清单文件
      • -i / --ssh-key:指定私钥路径(免密登录)
      • -p / --preserve:保留远程文件的修改时间、权限等属性
      • -z / --compress:在传输过程中使用 gzip 压缩
      • -v / --verbose:显示详细进度信息
    4. 示例(含常用选项)
      fetchlinux -r -f filelist.txt -o /backup/remote_$(date +%F) \
        -i ~/.ssh/id_rsa -p -z -v
      
    5. 建议做法
      • 备份文件名加入时间戳,便于版本管理与回滚
      • 将备份任务加入 cron 定时执行,例如每日 02:00
        0 2 * * * /usr/local/bin/fetchlinux -r -f /opt/backup/filelist.txt \
          -o /backup/remote_$(date +\%F) -i ~/.ssh/id_rsa -p -z >> /var/log/fetchlinux_backup.log 2>&1
        
  • 说明:上述命令选项与用法以 FetchLinux 工具自身支持为准;如你的版本存在差异,请以 fetchlinux --help 输出为准。

三 不用 FetchLinux 的通用 Linux 备份方案

  • 场景 A:目录/项目级备份(增量、高效)
    • 安装 rsync(如未安装):sudo yum install -y rsync(或 sudo apt-get install -y rsync
    • 增量备份(保留属性、删除目标端多余文件)
      rsync -aAXv --delete /path/to/source/ /backup/data/source_$(date +%F)
      
    • 说明:
      • -a 归档模式(保留权限、属主、时间戳、符号链接等)
      • -A 保留 ACL
      • -X 保留 扩展属性
      • -v 显示过程
      • –delete 让目标与源保持一致(谨慎使用)
  • 场景 B:整系统快照(打包归档)
    sudo tar -czvf /backup/system_$(date +%F).tar.gz \
      --exclude={"/proc","/sys","/dev","/tmp","/run"} /
    
  • 场景 C:块设备/磁盘镜像(谨慎)
    sudo dd if=/dev/sda of=/backup/sda_$(date +%F).img bs=4M status=progress
    
  • 以上命令均为 Linux 常用备份手段,适合在无法使用 FetchLinux 或需要本地/整盘备份时采用。

四 自动化与恢复验证

  • 自动化
    • 使用 cron 定时执行备份脚本(示例为每日 02:00):
      0 2 * * * /opt/backup/backup.sh >> /var/log/backup.log 2>&1
      
    • 简单脚本模板(可按需扩展)
      #!/usr/bin/env bash
      set -e
      SRC="/path/to/source"
      DST="/backup/data"
      mkdir -p "$DST"
      rsync -aAXv --delete "$SRC" "$DST/$(date +%F)"
      
  • 恢复与验证
    • rsync 增量备份的恢复(覆盖式回滚)
      rsync -aAXv /backup/data/source_2025-11-22/ /path/to/source/
      
    • tar 归档的恢复
      tar -xzvf /backup/system_2025-11-22.tar.gz -C /
      
    • 镜像恢复(会覆盖目标磁盘,务必确认)
      sudo dd if=/backup/sda_2025-11-22.img of=/dev/sda bs=4M status=progress
      
    • 例行检查
      • 查看备份文件列表与大小:ls -lh /backup/
      • 校验压缩包内容:tar -tzvf /backup/system_*.tar.gz | head
      • 定期做恢复演练,确保可用。

0