我正在尝试在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]
答案 0 :(得分: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 %*
在Windows上,您可以输入where ssh
来检查这是否是个问题。你会得到这样的东西:
where ssh
C:\Program Files (x86)\Git\bin\ssh.exe
C:\Program Files\cwRsync\ssh.exe
答案 1 :(得分:13)
我在更改rsync版本时看到了这一点。在旧版本中,它可以说:
rsync -e 'ssh ...
当rsync.exe
和ssh.exe
位于同一目录时。
对于较新的版本,我必须指定路径:
rsync -e './ssh ...
并且有效。
答案 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修复它。
答案 3 :(得分:5)
我在两个Linux机箱之间出现此错误。通过在远程盒子和本地盒子上安装RSYNC轻松解决。
答案 4 :(得分:4)
此错误消息可能意味着您错误输入了服务器名称或忘记在服务器启动ssh服务器。绝对确定ssh服务器正在端口22上的服务器上运行,并且它没有防火墙。您可以使用ssh user@server
进行测试。
答案 5 :(得分:4)
我得到了解决方案。我使用的是cygwin,这就是Windows的rsync命令仅在windows shell中工作并在windows powershell中工作的问题。
有几次在两个linux盒子之间发生了同样的错误。并且似乎是由rsync的不兼容版本