rsync over ssh "errore nel flusso di dati del protocollo" (codice 12). ssh funziona


51

Provai:

rsync -v -v -e 'ssh -p YY' ./testfile me@XXXXX:/home

Messaggio di errore

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)

Funziona bene:

ssh -p YY me@XXXXX

Il che mi suggerisce che il problema non è né quello che sshdnon è in esecuzione né che la porta YY è protetta da firewall. Ho controllato comunque.

Quali altri problemi potrebbero esserci?

EDIT: il problema sembra essere stato "auto-risolvente". Non ho potuto replicare il giorno seguente. Ho avviato il mio computer locale. Forse in particolare avevo un indirizzo IP diverso dall'ultima volta. E ora rsync funziona magicamente. Gradirei ipotesi su cosa avrebbe potuto essere alla luce della sua scomparsa.


1
Hai il permesso di scrittura sul /homeserver remoto?
souravc,

Sicuro. Quando ssh posso iniziare a fare cat and touch ecc. Ripensandoci, non sono sicuro di cosa intendi per telecomando. Sto parlando di chiamare rsync su un server remoto per spostare le cose localmente. Dovrei avere i permessi di scrittura sia nella cartella originale che in quella di destinazione
user3391229,

Ho riscontrato questo errore (durante il tentativo di risincronizzare il mio blog Pelican sul mio server) una volta ogni tanto. Trovo che se ho SSH nel server, quindi riprovare rsync, funziona bene. Non sono sicuro di cosa succede nel mezzo.
Anthony C,

Non avere abbastanza spazio sul server remoto può anche sollevare questo errore.
Makan

Risposte:


84

Puoi anche ottenere questo errore se specifichi un percorso remoto che non esiste.

Ho ricevuto questo errore su 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]

Girato era semplicemente una questione di errori di battitura sul percorso di destinazione. La appsdir non esisteva. Quando ho cambiato che a static:sites/myapp.composto (la sitesdir ha fatto esistere), l'errore è andato via.

Va bene se la directory finale nel percorso non esiste (potrei farlo static:sites/mynewapp.com) ma sembra che qualsiasi directory precedente debba già esistere.


Ho quasi dimenticato di fare questa domanda. Da allora non ho più avuto lo stesso problema. Sospetto che sia quello che è successo.
user3391229

18
Grazie! Questo deve essere il messaggio di errore più fuorviante di sempre.
Frans,

1
anche se non hai un eseguibile rsync, mostra un errore simile. Principalmente ho visto in ansibles
mannoj il

Per qualche ragione ho pensato che rsync avrebbe creato la directory se non esistesse ... Immagino di no - devi prima creare la directory di destinazione. Se il percorso di destinazione termina con una barra, la directory deve esistere. Se non termina in una barra, deve esistere l'unico livello sopra di essa.
squarecandy,

1
Il mio problema è: il disco remoto è pieno.
Zhang Buzz,

15

Ho ricevuto questo errore quando rsyncnon è stato installato sull'host di destinazione. Anche il messaggio di errore nel mio caso diceva rsync: command not found. Un semplice

sudo apt-get install rsync

sull'host di destinazione risolto il problema.


Ho avuto l'errore a codice 12 e nessun messaggio sul comando rsync non trovato. Una volta installato, l'errore è scomparso.
Hbar il

4

Lo script di accesso all'estremità remota produce immondizia su stdout? Controlla questo con

ssh -p YY me@XXXXX /bin/true > out.txt

Se out.txtcontiene dati, identifica le dichiarazioni offensive nel tuo .profileo .bashrce includile

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

Nada in out.txt. Ma ho anche provato questo pomeriggio in un periodo in cui non sono riuscito a riprodurre il problema.
user3391229,

L'ho provato in un momento in cui avrei potuto produrre il problema e non ho avuto nulla in out.txt.
joshreesjones,

1

Potrebbe essere necessario inserire il percorso completo del binario ssh, ad es

rsync -v -v -e '/usr/bin/ssh -p YY' ./testfile me@XXXXX:/home

Sebbene ci siano altre possibili cause.


Sì, ho letto che potrebbe accadere quando hai più istanze di ssh a cui potresti fare riferimento. Tuttavia, il fatto che sia andato via il giorno successivo rende questo improbabile
user3391229

0

Questo errore può verificarsi anche se il percorso di rsync sul sistema remoto non è quello che il sistema locale presuppone che sia. Puoi vedere cosa sta succedendo specificando -vv (o anche più vs). Se questo è il problema, puoi specificare il percorso remoto da rsync con l'opzione --rsync-path.


0

Stavo vedendo questo errore:

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]

Sono stato in grado di accedere all'host remoto e ho scoperto che lo spazio su disco era insufficiente.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.