为什么在Windows上意外关闭此rsync连接?

rkm*_*max 37 windows rsync

我正在尝试rsync在Windows 7 上使用.我安装了cwRsync并尝试连接到Ubuntu 9.04.

$ rsync -azC --force --more-options ./ user@server:/my/path/
rsync: connection unexpectedly closed (0 bytes received so far) [receiver] 
rsync error: error in rsync protocol data stream (code 12) at io.c(600) [receiver=3.0.5]
rsync: connection unexpectedly closed (0 bytes received so far) [sender]
rsync error: error in rsync protocol data stream (code 12) at io.c(610) [sender=3.0.8]
Run Code Online (Sandbox Code Playgroud)

Pet*_*tah 22

我的诀窍是我有ssh冲突.

我在我的Windows路径上安装了Git,其中包括ssh.cwrsync还安装了ssh.

诀窍是制作一个批处理文件来设置正确的路径:

rsync.bat

@echo off
SETLOCAL
SET CWRSYNCHOME=c:\commands\cwrsync
SET HOME=c:\Users\Petah\
SET CWOLDPATH=%PATH%
SET PATH=%CWRSYNCHOME%\bin;%PATH%
%~dp0\cwrsync\bin\rsync.exe %*
Run Code Online (Sandbox Code Playgroud)

在Windows上,您可以键入where ssh以检查这是否是一个问题.你会得到这样的东西:

where ssh
C:\Program Files (x86)\Git\bin\ssh.exe
C:\Program Files\cwRsync\ssh.exe
Run Code Online (Sandbox Code Playgroud)

  • github 的 git 客户端的 shell ssh 版本也有问题。执行“apt-cyg install openssh”为我解决了这个问题。如果不确定是否遇到此问题,请在 cygwin 提示符下尝试“which ssh”。 (2认同)
  • +1。我正在使用 cygwin 并遇到同样的问题。我找到了一个更简单的方法来解决这个路径问题,只需执行“SET PATH=C:\cygwin\bin;%PATH%”,即在所有路径之前*pre*pend cygwin(或cwrsync)路径(自动包括git的路径) 。 (2认同)

小智 13

我在更改rsync版本时看到了这一点.在旧版本中,它说:

rsync -e 'ssh ...

什么时候rsync.exessh.exe他们在同一个目录.

对于较新的版本,我必须指定路径:

rsync -e './ssh ...

它起作用了.

  • +1除了一个更好的示例路径将是rsync -e/usr/bin/ssh .... (2认同)
  • @maverick 是的,我确信`rsync -e /usr/bin/ssh.exe` 会工作得更好。-_- (2认同)

小智 6

我有这个问题,但只有当我尝试从Linux(RH)服务器rsync到Solaris服务器时.我的修复是确保rsync在两个框上都有相同的路径,并且rsync的所有权是相同的.

在linux框中,rsync路径是/ usr/bin,在Solaris框中它是/ usr/local/bin.所以,在Solaris盒子上我做了ln -s/usr/local/bin/rsync/usr/bin/rsync.

我仍然遇到同样的问题,并注意到所有权差异.在linux上它是root:root,在solaris上它是bin:bin.将solaris更改为root:root修复它.

  • 如果远程rsync二进制文件位于一个不寻常的位置,您可以指定它:rsync -azC --rsync-path =/usr/local/bin/rsync ...例如. (4认同)

dav*_*dgo 5

我在两个Linux机箱之间出现了这个错误.通过在远程盒子和本地盒子上安装RSYNC轻松解决.


rkm*_*max 4

我得到了解决方案。我使用的是 cygwin,这就是 Windows 的 rsync 命令仅在 Windows shell 中工作并且在 Windows powershell 中工作的问题。

有几次,两个 Linux 机器之间发生了同样的错误。并且似乎是由不兼容的 rsync 版本造成的

  • 我对 cygwin 和 rsync 也有同样的问题。就我而言,我已经安装了 Windows 版 Git,并且它已将自己的 openssh 实现放在 PATH 中的第一个位置(位于“/cygdrive/c/Windows/System32/OpenSSH/ssh”)。通过添加 rsync 选项 `--rsh /cygdrive/c/cygwin64/bin/ssh`,我可以使用不给出错误消息的 cygwin openssh 实现。 (4认同)