1

我在机器 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 的末尾添加 /,但没有用。我怎样才能摆脱这个消息?

4

1 回答 1

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 要记住的一件事是,您失去了并行和分段下载选项,因此速度可能会更慢。

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

于 2014-01-09T01:33:14.370 回答