我在机器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的末尾添加了/,但是没有用。 我怎样才能摆脱这条消息?
答案 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手册页。