温馨提示×

如何在Linux用FileZilla进行FTP备份

小樊
39
2025-12-10 02:27:42
栏目: 智能运维

在Linux使用FileZilla进行FTP备份

一 准备与安装

  • 安装 FileZilla 客户端(支持 FTP/FTPS/SFTP):
    • Debian/Ubuntu 系:sudo apt-get update && sudo apt-get install filezilla
    • RHEL/CentOS 系:sudo dnf install filezilla(或使用系统软件中心)
  • 准备连接信息:服务器 IP/域名、协议(建议 FTPSSFTP)、端口(FTP 21SFTP 22)、用户名、密码/密钥、以及本地与远程的备份目录。
  • 若必须使用明文 FTP,务必在受信任网络中运行,并考虑启用 TLS/SSL 加密(即 FTPS)。

二 图形界面手动备份步骤

  • 打开 FileZilla → 文件 → 站点管理器 → 新建站点:
    • 协议:选择 FTP - 文件传输协议(需要加密时选 FTPS - 显式 FTP over TLS;若服务器支持 SSH 则优先 SFTP - SSH 文件传输协议)。
    • 主机:填入服务器 IP/域名;端口:21(FTP/FTPS)22(SFTP)
    • 登录类型:一般选 正常,填写用户名与密码;SFTP 可选择基于密钥的登录。
  • 连接成功后,界面左侧为 本地站点,右侧为 远程站点
    • 备份到远程:在左侧选中本地目录/文件,拖拽到右侧目标目录(上传)。
    • 从远程恢复:在右侧选中目录/文件,拖拽到左侧(下载)。
  • 传输完成后,可在“传输队列/日志”查看状态与结果,确认无失败项。

三 自动化备份方案

  • 说明:FileZilla 为 GUI 客户端,不提供原生命令行;若需无人值守/定时备份,建议采用以下替代方式:
    • 使用 SFTP/FTPS 的命令行工具(如 lftp、curl、sftp)编写脚本,并通过 cron 定时执行。
    • 若坚持使用图形客户端,可借助 xdotool 等模拟键鼠操作,但稳定性与环境依赖较差,不推荐用于生产。
  • 示例脚本思路(SFTP,免交互密钥登录):
    • 前提:已配置本机到服务器的 SSH 公钥认证,本地备份目录为 /data/backup,远程目录为 /backup
    • 脚本 backup.sh:
      #!/usr/bin/env bash
      set -e
      BACKUP_SRC="/data/backup"
      REMOTE_USER="backup"
      REMOTE_HOST="192.0.2.10"
      REMOTE_DIR="/backup"
      SSH_KEY="/home/backup/.ssh/id_rsa"
      TIMESTAMP=$(date +%F_%H-%M-%S)
      LOG="/var/log/backup_ftp_${TIMESTAMP}.log"
      
      echo "[$(date)] 开始备份 ${BACKUP_SRC} → ${REMOTE_USER}@${REMOTE_HOST}:${REMOTE_DIR}" >> "$LOG"
      
      # 执行同步(保留目录结构、删除远端多余文件;可按需增减参数)
      rsync -avz --delete -e "ssh -i ${SSH_KEY} -p 22" \
        "${BACKUP_SRC}/" "${REMOTE_USER}@${REMOTE_HOST}:${REMOTE_DIR}/" >> "$LOG" 2>&1
      
      echo "[$(date)] 备份完成,详情见 ${LOG}" >> "$LOG"
      
    • 赋权与定时:
      chmod +x /usr/local/bin/backup.sh
      # 每天 02:00 执行
      echo "0 2 * * * root /usr/local/bin/backup.sh" | sudo tee /etc/cron.d/backup_ftp
      
  • 若服务器仅支持 FTP(不推荐),可用 lftp 脚本示例(明文传输,务必在可信网络):
    #!/usr/bin/env bash
    set -e
    HOST="192.0.2.10"
    USER="backup"
    PASS="YourPassword"
    LOCAL_DIR="/data/backup"
    REMOTE_DIR="/backup"
    LOG="/var/log/ftp_backup.log"
    
    lftp -u "$USER","$PASS" -e "
      set ftp:ssl-allow no;
      mirror -R --delete --verbose '$LOCAL_DIR' '$REMOTE_DIR';
      bye
    " "$HOST" >> "$LOG" 2>&1
    

四 安全与排错要点

  • 优先选择 SFTP/FTPS,避免明文 FTP;在公共网络或合规场景下必须使用加密传输。
  • 防火墙与被动端口:
    • FTP 需放行 21/TCP(控制)与服务器配置的 被动模式端口段(如示例 65000–65534/TCP);
    • SFTP 仅需放行 22/TCP
  • 连接失败排查:确认服务已启动、协议/端口正确、用户名与凭据无误;查看 FileZilla 底部 日志 获取错误细节(超时、拒绝、TLS 握手失败等)。
  • 备份策略:建议采用 增量/差异 方式、保留 多份历史、并定期做 恢复演练;重要数据至少保留 异地/离线 副本。

0