lftp镜像中的错误消息“source:is a directory”

时间:2013-05-31 18:26:45

标签: rsync lftp

我在机器A上作为用户A1,密码P1,并且有一个文件夹L1。我希望它与远程计算机B上的用户A2(P1)的文件夹L2保持同步。我知道rsync无法在ftp上运行,我在A上安装了lftp。

我在机器A上写了一个脚本(我不能在机器B上放任何脚本)

REMOTEHOST='B'   #this is machine from which I want files
REMOTEUSER='A2'   #this is user for the machine
REMOTEPASSWORD='P2' #this is password for user of remote machine

#lftp
lftp -f "
open $HOST
user $USER $PASS
mirror L2 L1"

文件被复制,但我收到一条消息“来源:是一个目录”

我尝试了-R标志并在L1和L2的末尾添加了/,但是没有用。 我怎样才能摆脱这条消息?

1 个答案:

答案 0 :(得分:1)

所以我就碰到了这个。您应该尝试使用 mget 而不是lftp的命令允许下载单个文件...有点蹩脚,镜像无法处理这个但是“镜像”的概念应该代表镜像我认为有意义的目录。

基于你所拥有的一个例子:

#lftp
lftp -f "
open $HOST
user $USER $PASS
mget L2 L1"

你也可以这样做oneliner:

lftp -u user,pass -e "mget /home/user/coolfile.txt /mnt/raid/; quit" sftp://server.net

使用mget要记住的一件事是你松开了并行和分段的下载选项,因此速度可能会变慢。

更多关于this优秀的lftp手册页。