LFTP镜像只上传不存在的文件到远程目录

LFTP镜像只上传不存在的文件到远程目录

每 5 分钟就会通过 lftp 将一些新文件下载到本地目录。我需要仅将不存在的文件上传到另一个 ftp。到目前为止我的脚本是:

#! /bin/bash
today=$(date +%Y%m%d)
today_files="rec."$today"_"
programa_dir="/home/user/local-dir"

# Download files, that do not exist in the local directory
lftp <<EOF
open -u user,pass ftp1
mget "$today_files*" -O $programa_dir
bye
EOF

# Upload the files

lftp <<EOF
open -u user,pass ftp2
lcd $programa_dir
mirror -R
bye
EOF

镜像 -R 命令无法识别第二个 ftp 的远程目录中仅存在少数文件。

有办法解决这个问题吗?我只需要检查文件名,而不是文件的创建或修改时间。

对于我尝试过的第二个 ftp

lftp <<EOF
open -u user,pass ftp2
mput $programa_dir/* -O /
bye
EOF

结果是相同的 - lftp 上传所有文件,而不仅仅是不存在的文件。

答案1

我目前无法访问 LFTP,但我怀疑您正在寻找参数--only-missing,该参数只能与mirror.

尝试这个:

lftp <<<EOF
open -u user,pass ftp2
mirror --reverse --only-newer $programa_dir/* /
bye
EOF

答案2

如果将 set 添加xfer:clobber off;到lftp 命令脚本中,将避免覆盖现有文件。

相关内容