我在机器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"
文件被复制,但是我得到一个消息"source: Is a directory"
我尝试了-R标志并在L1和L2的末尾添加/,但没有工作。我怎样才能删掉这条信息?
我碰到了这个。你应该尝试使用mget,这是一个lftp命令,允许下载单个文件…镜像不能处理这个有点蹩脚,但是"镜像"的概念应该代表镜像一个目录,我认为这是有意义的。
一个基于你所拥有的东西的例子是:
#lftp
lftp -f "
open $HOST
user $USER $PASS
mget L2 L1"
你也可以这样做:
lftp -u user,pass -e "mget /home/user/coolfile.txt /mnt/raid/; quit" sftp://server.net
使用mget要记住的一件事是,你失去了并行和分段下载选项,所以速度可能会变慢。