rsync --protocol=29 -rav -e ssh --include '*/' --include='*_en*.xml.gz' --exclude='*' user@server:/path/
正在从远程服务器下载内容,但之后我收到此错误:
Write failed: Connection reset by peer
rsync: connection unexpectedly closed (39027627 bytes received so far) [receiver]
rsync error: error in rsync protocol data stream (code 12) at /home/lapo/package/rsync-3.0.9-1/src/rsync-3.0.9/io.c(605) [receiver=3.0.9]
rsync: connection unexpectedly closed (149869 bytes received so far) [generator]
rsync error: unexplained error (code 255) at /home/lapo/package/rsync-3.0.9-1/src/rsync-3.0.9/io.c(605) [generator=3.0.9]
有什么想法为什么会发生这种情况吗?
答案1
有东西正在破坏您的网络连接。它可以是本地计算机和远程计算机之间的任何网络设备。例如,一些过载的防火墙往往会随机地丢弃连接。诊断此问题需要充分了解网络拓扑。
当底层 TCP 连接断开时,Rsync 连接很容易恢复:只需再次运行即可。只要每次运行都有时间传输至少一个完整的文件,它最终就会完成工作。
一般来说,您可以在不太可靠的 TCP 连接之上构建更可靠的 TCP 连接,但我不知道有任何交钥匙解决方案。某些 VPN 软件可能对此很有效。岩石是一个古老的、未维护的工具来做到这一点。
也可以看看最*强大的*远程文件复制?和自动重连 TCP 隧道
答案2
我最近在 cygwin 下使用 rsync 3.1.1(和 3.0.9)并从远程 Linux 机器(rsync 3.1.0)拉取时遇到了同样的问题。就我而言,它与源路径中的空格有关。解决方案是将路径用双引号引起来,然后将其用单引号引起来,例如
$ rsync [email protected]:'"Documents/016054 signed agreement.pdf"' $TEMP/file.pdf
省略单曲和/或双引号会导致失败。请注意,引号围绕目录/文件,而不是用户/计算机。
答案3
除了网络问题和 rsync 协议问题之外,您还可能尝试一次同步太多文件,以致内存不足。
你没有写任何有关你的环境的内容,所以我只是猜测。但是,当您从/向 OpenVZ 容器同步许多文件并且突然用完 PRIVVMPAGES 时,也会出现类似的问题。
要检查它是否与内存有关,只需尝试 rsync 单个大文件即可。