rsync不会同步文件

我遇到了一个奇怪的问题。 我通常使用rsync来同步服务器之间的文件,现在这个工具的行为是一个奇怪的方式。

首先,这是我使用的命令:

 server1# rsync -av -e ssh ./server1_dir/ [email protected]:/server2_dir/ 

它应该启动同步过程,但没有文件同步,只有目录。 并不是所有的目录实际上,因为rsync进程长时间停滞导致超时错误。

如果我杀了这个过程再做一次尝试,那根本就没有开始。 我看到的唯一信息是:

 sending incremental file list 

第一个想法是 – 防火墙。 但是两台服务器都没有安装。 我甚至尝试手动编译最新的rsync版本,但没有成功。

有人可以帮我解决这个问题吗? 非常感谢。

更新。 strace输出在server1上

 root@server1 [~]# ps auxf|grep [r]sync root 13958 0.0 0.0 70676 1232 pts/0 S+ 23:29 0:00 | \_ rsync -avv -e ssh directory1 [email protected]:/home root 13959 0.0 0.2 58436 3256 pts/0 S+ 23:29 0:00 | \_ ssh -l root 192.168.1.1 rsync --server -vvlogDtpre.isf . /root root@server1 [~]# strace -p 13959 Process 13959 attached - interrupt to quit select(7, [3 4], [], NULL, NULL 

最后,问题已经解决了。 很难相信,但在主networking接口上设置的MTU不正确。 将MTU更改为1460后,同步过程已经开始并立即完成。 感谢所有的答案。

我最近遇到了同样的症状。 双方都表示他们正在等待另一边。 然后我注意到服务器端在netstat中有一个很大的发送队列,所以我开始寻找networking级解决scheme。 我试图像上面那样减lessMTU,但是没有什么区别。 然后我禁用双方的SACK,rsync又开始工作了:

 echo 0 > /proc/sys/net/ipv4/tcp_sack 

有一些思科错误的select性确认和序列号随机化的讨论,这至less是一个合理的原因造成差异。