为什么这个rsync连接在Windows上意外closures?

我试图在Windows 7上使用rsync 。我安装了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] 

我的诡计是我有ssh冲突。

我的Windowspath上安装了Git,其中包括ssh。 cwrsync也安装ssh。

诀窍是有一个batch file来设置正确的path:

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 %* 

在Windows上,你可以inputwhere ssh来检查这是否是一个问题。 你会得到这样的东西:

 where ssh C:\Program Files (x86)\Git\bin\ssh.exe C:\Program Files\cwRsync\ssh.exe 

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

rsync -e 'ssh ...

rsync.exessh.exe在同一个目录下时。

随着新版本,我不得不指定的path:

rsync -e './ssh ...

它的工作。

我有这个问题,但只有当我试图从Linux(RH)服务器rsync同步到Solaris服务器。 我的修复是确保rsync在两个盒子上都有相同的path,并且rsync的所有权是一样的。

在Linux机器上,rsyncpath是/ usr / bin,在Solaris机器上是/ usr / local / bin。 所以,在Solaris机器上,我做了-s / usr / local / bin / rsync / usr / bin / rsync。

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

我有两个Linux的盒子之间出现这个错误。 通过在远程盒子和本地盒子上安装RSYNC很容易解决。

这个错误信息可能意味着你input错误的服务器名称或忘记在服务器上启动一个ssh 服务器 。 确保一个ssh服务器在端口22上的服务器上运行,并且它没有被防火墙。 你可以用ssh user@server来testing。

我得到的解决scheme。 我已经使用了cygwin,这是Windows的rsync命令只能在Windows shell中工作,并在Windows PowerShell中工作的问题。

有几次它发生了两个Linux机箱之间的相同的错误。 并似乎是由不兼容的版本的rsync