rsync sur ssh "erreur dans le flux de données du protocole" (code 12). ssh fonctionne

37

J'ai essayé:

rsync -v -v -e 'ssh -p YY' ./testfile [email protected]:/home

Message d'erreur

opening connection using: ssh -p YY -l me 146.6.84.206 rsync ->-server -vvve.s . /home 
[sender] make_file(testfile,*,0)
send_file_list done
send_files starting
server_recv(2) starting pid=17537
rsync: connection unexpectedly closed (9 bytes received so far) [sender]
rsync error: error in rsync protocol data stream (code 12) at io.c(600)[sender=3.0.6]
_exit_cleanup(code=12, file=io.c, line=600): about to call exit(12)

Cela fonctionne bien:

ssh -p YY [email protected]

Ce qui me suggère que le problème n'est pas que sshd n'est pas en cours d'exécution ni que le port YY est protégé par un pare-feu. J'ai vérifié quand même.

Quels autres problèmes pourrait-il y avoir?

EDIT: Le problème semble avoir été "résolutif". Je ne pouvais pas reproduire le lendemain. J'ai démarré mon ordinateur local. Peut-être notamment que j'avais une adresse IP différente de celle de la dernière fois. Et maintenant, rsync fonctionne comme par magie. J'apprécierais les conjectures quant à ce que cela aurait pu être à la lumière de ce qui s'en va.

    
posée user3391229 18.05.2015 - 05:39
la source

6 réponses

64

Vous pouvez également obtenir cette erreur si vous spécifiez un chemin d'accès distant inexistant.

J'ai cette erreur sur OS X:

$ rsync -avz public/ static:apps/myapp.com
building file list ... done
rsync: connection unexpectedly closed (8 bytes received so far) [sender]
rsync error: error in rsync protocol data stream (code 12) at /BuildRoot/Library/Caches/com.apple.xbs/Sources/rsync/rsync-47/rsync/io.c(453) [sender=2.6.9]

Tourné, il s’agissait simplement d’une erreur de frappe sur le chemin de destination. Le apps dir n'existait pas. Lorsque j'ai changé cela en static:sites/myapp.com (le sites dir existait), l'erreur a disparu.

C'est bien si le répertoire final du chemin n'existe pas (je pourrais faire static:sites/mynewapp.com ) mais il semble que tout répertoire précédent doit déjà exister.

    
réponse donnée Henrik N 04.01.2016 - 20:39
la source
6

J'ai cette erreur lorsque rsync n'a pas été installé sur l'hôte cible. Le message d'erreur dans mon cas a également indiqué rsync: command not found . Un simple

sudo apt-get install rsync

sur l’hôte cible a résolu le problème.

    
réponse donnée Florian Brucker 17.05.2017 - 16:24
la source
3

Votre script de connexion à l'extrémité distante produit-il des erreurs sur stdout? Vérifiez ceci avec

ssh -p YY [email protected] /bin/true > out.txt

Si out.txt contient des données, identifiez les instructions incriminées dans votre .profile ou .bashrc et enveloppez-les dans

if [ ! -t 1 ]; then
  echo garbage
fi
    
réponse donnée Arjen 18.05.2015 - 10:35
la source
0

Vous devrez peut-être mettre le chemin complet vers le binaire ssh, c’est-à-dire

rsync -v -v -e '/usr/bin/ssh -p YY' ./testfile [email protected]:/home

Bien qu’il existe d’autres causes possibles.

    
réponse donnée thomasrutter 18.05.2015 - 05:54
la source
0

Cette erreur peut également se produire si le chemin d'accès à rsync sur le système distant n'est pas ce que le système local suppose. Vous pouvez voir ce qui se passe en spécifiant -vv (ou même plus vs). Si tel est le problème, vous pouvez spécifier le chemin d'accès distant à rsync avec l'option --rsync-path.

    
réponse donnée Mike 18.10.2016 - 19:21
la source
0

Je voyais cette erreur:

rsync -e 'ssh -v'

debug1: Exit status 11

...

rsync error: error in rsync protocol data stream (code 12) at /BuildRoot
/Library/Caches/com.apple.xbs/Sources/rsync/rsync-51/rsync/io.c(453)
[sender=2.6.9]

J'ai pu insérer ssh dans l’hôte distant et constaté que l’espace disque était insuffisant.

    
réponse donnée Andy 02.05.2017 - 22:37
la source

Lire d'autres questions sur les étiquettes