it-swarm.com.de

Warum wird diese rsync-Verbindung unter Windows unerwartet geschlossen?

Ich versuche, rsync unter Windows 7 zu verwenden. Ich habe cwRsync installiert und versucht, eine Verbindung zu Ubuntu 9.04 herzustellen.

$ rsync -azC --force --more-options ./ [email protected]:/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]
37
rkmax

ich bekomme die Lösung. Ich verwende Cygwin und dies ist das Problem, das der Befehl Rsync für Windows nur in Windows Shell funktioniert und in der Windows PowerShell funktioniert.

Ein paar Mal ist es passiert, der gleiche Fehler zwischen zwei Linux-Boxen. und scheint von inkompatiblen Versionen von rsync zu sein

4
rkmax

Der Trick für mich war, dass ich einen ssh Konflikt hatte.

Ich habe Git auf meinem Windows-Pfad installiert, der ssh enthält. cwrsync installiert auch ssh.

Der Trick besteht darin, eine Batch-Datei zu erstellen, um die richtigen Pfade festzulegen:

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

Unter Windows können Sie where ssh, um zu überprüfen, ob dies ein Problem ist. Sie erhalten so etwas:

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

Ich habe dies gesehen, als ich die rsync-Version geändert habe. In der älteren Version funktionierte es zu sagen:

rsync -e 'ssh ...

wenn der rsync.exe und ssh.exe befanden sich im selben Verzeichnis.

Bei der neueren Version musste ich den Pfad angeben:

rsync -e './ssh ...

und es hat funktioniert.

13
Seth Wegner

Ich hatte dieses Problem, aber nur, als ich versuchte, einen Linux-Server (RH) mit einem Solaris-Server zu synchronisieren. Meine Lösung bestand darin, sicherzustellen, dass rsync auf beiden Boxen denselben Pfad hatte und dass der Besitz von rsync derselbe war.

Auf der Linux-Box lautete der rsync-Pfad/usr/bin, auf der Solaris-Box/usr/local/bin. Also habe ich auf der Solaris-Box ln -s/usr/local/bin/rsync/usr/bin/rsync ausgeführt.

Ich hatte immer noch das gleiche Problem und bemerkte Besitzunterschiede. Unter Linux war es root: root, unter Solaris war es bin: bin. Wechsel von Solaris zu root: root hat es behoben.

6
Mark

Ich hatte diesen Fehler zwischen 2 Linux-Boxen. Problemlos gelöst durch die Installation von RSYNC sowohl auf der Remote-Box als auch auf der lokalen.

5
davidgo

Diese Fehlermeldung bedeutet wahrscheinlich, dass Sie entweder den Servernamen falsch eingegeben oder vergessen haben, einen SSH-Server um Server zu starten. Stellen Sie absolut sicher, dass ein SSH-Server auf dem Server an Port 22 ausgeführt wird und dass er nicht durch eine Firewall geschützt ist. Sie können das mit ssh [email protected] Testen.

4
phihag