rsync协议不兼容

使用以下命令从远程服务器执行rsync pull操作时:

/usr/bin/rsync -av -e ssh --delete --chmod=a+rwx,g+rwx,o-wx --dry-run username@server:/remote/path/ /home/dir/local/path 

我得到以下错误:

 receiving file list ... Invalid flist flag: 1004 rsync error: protocol incompatibility (code 2) at flist.c(2354) [Receiver=3.0.7] 

从远程到本地进行反向(即PUSH)时,我得到以下结果:

 building file list ... Invalid flist flag: 1004 rsync error: protocol incompatibility (code 2) at flist.c(2354) [Receiver=3.0.7] rsync: connection unexpectedly closed (8 bytes received so far) [sender] rsync error: error in rsync protocol data stream (code 12) at io.c(468) [sender=2.6.8] 

我已经尝试删除参数一个接一个,它似乎与-a标志有关

环境

 # local machine Linux lbox 2.6.32-21-generic #32-Ubuntu SMP Fri Apr 16 08:10:02 UTC 2010 i686 GNU/Linux # rsync version rsync version 3.0.7 protocol version 30 # remote machine FreeBSD rbox 6.4-STABLE FreeBSD 6.4-STABLE #0: Mon Feb 22 01:05:13 EST 2010 UNIX-BSD rsync version 2.6.8 protocol version 29 

这可以很容易解决吗?

FreeBSD有一个六年的rsync版本,它使用一个较旧的协议版本。 您可以强制新版本的rsync使用旧协议,方法是在您的rsync命令中添加--protocol=29

有趣的是,在起源机器和目标机器之间放置中介机器可以达到理想的效果:

即。

机器1(起源)>>机器2(中介)>>机器3(目的地)

 machine 1: rsync version 2.6.8 protocol version 29 machine 2: rsync version 3.0.3 protocol version 30 machine 3: rsync version 3.0.7 protocol version 30