You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Linux环境下仅通过FTP实现目录文件同步的单行命令技术问询

FTP目录同步crontab配置方案

最优工具选择

目前替代ncftpput、wput的最稳定方案是使用lftp工具,其内置的mirror指令专门用于目录双向同步,时间校验逻辑兼容绝大多数标准FTP服务端,完全解决ncftpput -z参数校验不可靠的问题。

前置准备

先安装lftp工具:

  • Debian/Ubuntu 系列操作系统:apt update && apt install -y lftp
  • RHEL/CentOS 系列操作系统:yum install -y lftp

单行同步命令

基础同步命令如下,可直接测试执行:

lftp -u "你的FTP用户名","你的FTP密码" -e "mirror -R --only-newer /本地待同步目录 /服务器目标目录; quit" 你的FTP服务器地址

参数说明:

  • -R:启用反向镜像模式,即把本地文件推送到服务器(默认是把服务器文件拉到本地)
  • --only-newer:仅传输本地比服务端更新的文件,自动跳过未变更的内容,校验逻辑基于标准FTP协议的文件修改时间字段,兼容性远高于ncftpput的非标准-z参数
  • 可选参数:
    • 加--delete:同步时删除服务端存在但本地不存在的文件,实现两端目录完全一致,不需要可省略
    • 加--ignore-time:如果FTP服务器与本地时间不同步,可添加该参数结合文件大小校验判断是否更新

Crontab 定时配置示例

如果需要每日凌晨2点执行同步,同时记录日志方便排查问题,执行crontab -e后添加以下行即可:

0 2 * * * lftp -u "your_user","your_pass" -e "mirror -R --only-newer /home/local/source /www/remote/dir; quit" ftp.webxx.at > /var/log/ftp_sync.log 2>&1

安全优化(可选)

如果不想在crontab中明文存储FTP密码,可编辑~/.netrc文件添加以下内容:

machine 你的FTP服务器地址
login 你的FTP用户名
password 你的FTP密码

执行chmod 600 ~/.netrc设置仅当前用户可读,之后同步命令可简化为:

lftp -e "mirror -R --only-newer /本地待同步目录 /服务器目标目录; quit" 你的FTP服务器地址

内容的提问来源于stack exchange,提问作者user855443

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.03 00:06:03