it-swarm.com.de

rsync over ssh "Fehler im Protokolldatenstrom" (Code 12). ssh funktioniert

Ich habe es versucht:

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

Fehlermeldung

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)

Das funktioniert gut:

ssh -p YY [email protected]

Was für mich bedeutet, dass das Problem weder darin besteht, dass sshd nicht ausgeführt wird, noch dass der Port YY durch eine Firewall geschützt ist. Ich habe trotzdem nachgesehen.

Welche anderen Probleme könnte es geben?

EDIT: Das Problem scheint "selbstauflösend" gewesen zu sein. Am folgenden Tag konnte ich nicht replizieren. Ich habe meinen lokalen Computer hochgefahren. Vielleicht hatte ich vor allem eine andere IP-Adresse als beim letzten Mal. Und jetzt funktioniert rsync auf magische Weise. Ich würde es begrüßen, wenn ich mir vorstellen könnte, was es angesichts des Wegfalls gewesen sein könnte.

49
user3391229

Sie können diesen Fehler auch erhalten, wenn Sie einen Remote-Pfad angeben, der nicht vorhanden ist.

Ich habe diesen Fehler unter 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]

In diesem Fall ging es einfach darum, den Zielpfad falsch einzugeben. Das Verzeichnis apps existiert nicht. Als ich das stattdessen in static:sites/myapp.com änderte (das sites dir hat existiert), verschwand der Fehler.

Es ist in Ordnung, wenn das letzte Verzeichnis im Pfad nicht existiert (ich könnte static:sites/mynewapp.com machen), aber es scheint, dass jedes vorhergehende Verzeichnis bereits existiert.

82
Henrik N

Ich habe diesen Fehler erhalten, als rsync nicht auf dem Zielhost installiert war. In der Fehlermeldung in meinem Fall stand auch rsync: command not found. Eine einfache

Sudo apt-get install rsync

auf dem Zielhost hat das Problem gelöst.

11
Florian Brucker

Produziert Ihr Anmeldeskript auf der Remote-Seite Müll auf stdout? Überprüfen Sie dies mit

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

Wenn out.txt Daten enthält, identifizieren Sie die beleidigenden Anweisungen in Ihrem .profile oder .bashrc und wickeln Sie sie ein

if [ ! -t 1 ]; then
  echo garbage
fi
3
Arjen

Möglicherweise müssen Sie den vollständigen Pfad zur SSH-Binärdatei eingeben, d. H

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

Es gibt jedoch auch andere mögliche Ursachen.

1
thomasrutter

Ich habe diesen Fehler gesehen:

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]

Ich konnte in den Remote-Host sshen und stellte fest, dass der Festplattenspeicher voll ist.

0
Andy

Dieser Fehler kann auch auftreten, wenn der Pfad zu rsync auf dem fernen System nicht dem entspricht, den das lokale System annimmt. Sie können sehen, was passiert, indem Sie -vv (oder noch mehr vs) angeben. Wenn dies das Problem ist, können Sie den Remote-Pfad zu rsync mit der Option --rsync-path angeben.

0
Mike