首页主机资讯CentOS FTP Server数据同步方法

CentOS FTP Server数据同步方法

时间2025-11-14 13:41:03发布访客分类主机资讯浏览1027
导读:CentOS FTP Server 数据同步方法 一、常用方案与适用场景 lftp mirror 镜像同步:适合纯 FTP 场景,支持断点续传、增量、删除远端多余文件,脚本化与定时任务友好。 LFTP + SFTP:当 FTP 仅用于发布...

CentOS FTP Server 数据同步方法

一、常用方案与适用场景

  • lftp mirror 镜像同步:适合纯 FTP 场景,支持断点续传、增量、删除远端多余文件,脚本化与定时任务友好。
  • LFTP + SFTP:当 FTP 仅用于发布、而同步通道可走 SSH 时,更安全,命令与 FTP 类似,适合跨公网传输。
  • rsync 直连或 SSH 隧道:增量、高效、可校验,适合有 SSH 访问权限的服务器间同步或本地/远端目录镜像。
  • 挂载 + 本地同步:用 sshfs 将远端目录挂载为本地盘,再用 rsync/lftp,适合“一台对外 FTP、另一台汇聚数据”的架构。
  • vsftpd 基础配置要点:禁用匿名、启用本地用户写入、按需 chroot、必要时开启被动端口范围与日志,便于安全与可维护性。

二、方案一 lftp mirror 镜像同步(纯 FTP)

  • 安装与准备
    • 安装客户端:sudo yum install -y lftp
    • 建议创建专用 FTP 账号与目录,设置合适的属主与权限(如 /home/ftpuser,权限 755/644)。
  • 基本用法
    • 上传(本地到远端,镜像):
      lftp -c "
        open ftp://your_ftp_host
        user your_ftp_user your_ftp_pass
        lcd /path/to/local
        cd /path/to/remote
        mirror --reverse --delete --verbose --parallel=4
        quit
      "
      
    • 下载(远端到本地,镜像):
      lftp -c "
        open ftp://your_ftp_host
        user your_ftp_user your_ftp_pass
        lcd /path/to/local
        cd /path/to/remote
        mirror --delete --verbose --parallel=4
        quit
      "
      
    • 常用参数:–reverse(上传)、–delete(保持两端一致)、–verbose(输出详情)、–parallel=N(并发)、–dry-run(演练)。
  • 定时任务
    • 示例:每天 02:00 同步并记录日志
      0 2 * * * /usr/bin/lftp -c "open ftp://host;
           user user pass;
           lcd /local;
           cd /remote;
           mirror --reverse --delete --verbose" >
          >
           /var/log/ftp_mirror.log 2>
          &
          1
      
  • 说明
    • 若 FTP 为被动模式,需在服务器端开放被动端口范围(如 30000–31000/tcp),客户端通常无需额外设置;仅开放 21/tcp 不足以完成数据连接。

三、方案二 LFTP + SFTP 或 rsync(更安全的传输)

  • LFTP over SFTP(推荐替代 FTP)
    lftp -u $USER,$PASS sftp://$HOST <
        <
        'EOF'
    cd /remote/path
    lcd /local/path
    mirror --reverse --delete --verbose
    bye
    EOF
    
    • 适合跨公网、需要加密与密钥认证的场景;SFTP 基于 SSH,免明文口令。
  • rsync over SSH(增量、高效)
    • 远端到本地:
      rsync -avz --delete -e ssh user@remote:/remote/path/ /local/path/
      
    • 本地到远端:
      rsync -avz --delete -e ssh /local/path/ user@remote:/remote/path/
      
    • 定时备份示例(每日 02:00):
      0 2 * * * /usr/bin/rsync -av --delete /var/ftp/ /backup/ftp/ >
          >
           /var/log/ftp_backup.log 2>
          &
          1
      
    • 说明:rsync 默认不删除目标端多余文件,加入 –delete 可保持镜像一致;适合有 SSH 访问权限的服务器。

四、方案三 挂载 + 本地同步(sshfs)

  • 适用架构:一台服务器(B)对外提供 FTP,另一台(A)产生数据;在 B 上用 sshfs 将 A 的目录挂载到 B 的 FTP 根目录下的子目录,再用 rsync/lftp 同步到 FTP 根目录,避免直接替换 FTP 用户根目录导致权限/可见性问题。
  • 步骤
    • 安装与挂载(B 上执行):
      sudo yum install -y epel-release fuse-sshfs
      sudo mkdir -p /home/ftpuser/sync_src
      sshfs -o reconnect,ServerAliveInterval=15,ServerAliveCountMax=3 \
            userA@192.168.1.100:/home/origin_dir /home/ftpuser/sync_src
      
    • 同步到 FTP 根目录(按需使用 rsync 或 lftp;注意属主/权限与 SELinux)
      rsync -av --delete /home/ftpuser/sync_src/ /home/ftpuser/
      
    • 说明:挂载点不要直接覆盖 FTP 用户根目录;如需开机挂载,可将 sshfs 命令加入 /etc/fstab(建议使用 systemd 挂载或凭证文件)。

五、防火墙与 vsftpd 配置要点

  • 防火墙
    • FTP 控制端口:sudo firewall-cmd --permanent --add-port=21/tcp & & sudo firewall-cmd --reload
    • 被动模式数据端口范围(示例 30000–31000/tcp):sudo firewall-cmd --permanent --add-port=30000-31000/tcp & & sudo firewall-cmd --reload
    • 仅开放 21/tcp 会导致数据连接失败(尤其跨公网/NAT)。
  • vsftpd 基础安全与可运维
    • 建议配置:anonymous_enable=NO、local_enable=YES、write_enable=YES、chroot_local_user=YES、xferlog_enable=YES、connect_from_port_20=YES
    • 如需加密传输,可启用 SSL/TLS(ssl_enable=YES,配置证书与允许的协议/套件)。

声明:本文内容由网友自发贡献,本站不承担相应法律责任。对本内容有异议或投诉,请联系2913721942#qq.com核实处理,我们将尽快回复您,谢谢合作!


若转载请注明出处: CentOS FTP Server数据同步方法
本文地址: https://pptw.com/jishu/747982.html
CentOS FTP Server防火墙设置技巧 CentOS FTP Server SSL证书配置指南

游客 回复需填写必要信息