lftp 反向镜像默默跳过子文件夹中的文件

lftp 反向镜像默默跳过子文件夹中的文件

我使用 lftp 将内容推送到仅支持 ftp 的 Web 服务器。它一开始以递归方式上传文件,然后逐渐增加上传量。

知道为什么这会跳过子文件夹中更改的文件,但不会跳过主目录中更改的文件吗?

细节: 我使用的是反向镜像模式,该模式将本地数据推送到服务器,而不是从服务器下载。在整个网络上,这是递归升级的推荐选项。

以下是完整脚本(来自这个答案

#!/bin/bash    
HOST="..."
USER="..."
PASS="..."
FTPURL="ftp://$USER:$PASS@$HOST"
LCD="/local/directory"
#RCD=""
#RCDCMD=cd $RCD;
#DELETE="--delete"
lftp -c "set ftp:ssl-allow no;
set ftp:list-options -a;
open '$FTPURL';
lcd $LCD;
$RCDCMD \
mirror --reverse \
   $DELETE \
   --verbose \
   --exclude-glob .*swp \
   --exclude-glob .*swn \
   --exclude-glob .*swo"

相关问题,通过权限问题解决了,但在本例中这不是问题。服务器上的所有内容都是“rwxr-xr-x”。

进一步测试:lftp 似乎时好时坏。例如,我运行该命令两次,它会跳过更改,然后第三次运行,正确地将更改的文件复制到服务器。

答案1

在 lftp 命令中,ls -R在 之前运行一个mirror

# Set variables as in the question
lftp -c "set ftp:ssl-allow no;
set ftp:list-options -a;
open '$FTPURL';
lcd $LCD;
ls -R;   # This is the key line!
$RCDCMD \
mirror --reverse \
   $DELETE \
   --verbose \
   --exclude-glob .*swp \
   --exclude-glob .*swn \
   --exclude-glob .*swo"

我将继续测试,但到目前为止,每次测试都有效......

相关内容