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]
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
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
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é.
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é.
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.
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
.