为什么这个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.exe
和ssh.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