web-dev-qa-db-fra.com

Pourquoi cette connexion rsync est-elle fermée de manière inattendue sous Windows?

J'essaie d'utiliser rsync sur Windows 7. J'ai installé cwRsync et essayé de me connecter à 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]
37
rkmax

je reçois la solution. J'ai utilisé cygwin et c'est le problème que la commande rsync pour Windows fonctionne uniquement dans Windows Shell et fonctionne dans PowerShell Windows.

Quelques fois, il s'est produit la même erreur entre deux boîtiers Linux. et semble être par des versions incompatibles de rsync

4
rkmax

L'astuce pour moi était que j'avais ssh conflit.

J'ai installé Git sur mon chemin Windows, qui inclut ssh. cwrsync installe également ssh.

L'astuce consiste à faire un fichier batch pour définir les bons chemins:

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

Sous Windows, vous pouvez taper where ssh pour vérifier s'il s'agit d'un problème. Vous obtiendrez quelque chose comme ceci:

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

Je l'ai vu lors du changement de versions de rsync. Dans l'ancienne version, cela fonctionnait pour dire:

rsync -e 'ssh ...

quand le rsync.exe et ssh.exe étaient dans le même répertoire.

Avec la nouvelle version, je devais spécifier le chemin:

rsync -e './ssh ...

et ça a marché.

13
Seth Wegner

J'ai eu ce problème, mais uniquement lorsque j'ai essayé de rsync d'un serveur Linux (RH) vers un serveur Solaris. Ma solution était de m'assurer que rsync avait le même chemin sur les deux boîtiers et que la propriété de rsync était la même.

Sur la boîte Linux, le chemin rsync était/usr/bin, sur la boîte Solaris c'était/usr/local/bin. Donc, sur la boîte Solaris, j'ai fait ln -s/usr/local/bin/rsync/usr/bin/rsync.

J'ai toujours eu le même problème et j'ai remarqué des différences de propriété. Sous Linux, c'était root: root, sous Solaris, c'était bin: bin. Changer Solaris en root: root l'a corrigé.

6
Mark

J'ai eu cette erreur entre 2 boîtiers Linux. Résolu facilement en installant RSYNC sur le boîtier distant ainsi que sur le boîtier local.

5
davidgo

Ce message d'erreur signifie probablement que vous avez mal tapé le nom du serveur ou oublié de démarrer un serveur ssh à serveur. Assurez-vous absolument qu'un serveur ssh fonctionne sur le serveur au port 22 et qu'il n'est pas protégé par un pare-feu. Vous pouvez tester cela avec ssh user@server.

4
phihag