PDA

Visualizza la versione completa : rsync muore inaspettatamente


ToNyT
21-05-2009, 20:42
Ho scritto in shell expect uno script che chiama una rsync

spawn rsync -c -r -h --delete-before --log-file=$logfile --progress "$src" root@$host:"$dst"

Una volta lanciato dopo x tempo trasferisce qualche file (di piccole dimesioni) segnalati nel log e poi, quando tocca ai grandi, muore (per dirlo alla baz) e nel log trovo


B]2009/01/27 21:37:34 [19730] rsync: writefd_unbuffered failed to write 4 bytes [sender]: Broken pipe (32) 2009/01/27 21:37:34 [19730]
rsync: connection unexpectedly closed (316 bytes received so far) [sender] 2009/01/27 21:37:34 [19730]
rsync error: unexplained error (code 255) at io.c(635) [sender=3.0.2]
[/B]

ho provato pure ad settare un timeout (code 255) settandolo a --timeout=1200
la versione della rsync è version 3.0.2, ma non posso aggiornarla e sulla nuova non ho trovato nulla a riguardo.

Stavo provando a trasferire 1.9G.
Io credo, dopo aver letto su vari forum che non riesce a trasferire perchè non ha abbastanza banda e chiude la connessione per timeout, è questo? Ho capito bene?

Stò cercando una maniera per risolvere ma fino ad ora niente.

Mi serve un aiuto ... GRAZIE in anticipo

detroit
21-05-2009, 21:05
vedi se ti può essere d'aiuto questo http://www.calabriaunix.org/port/index.php/pillole-e-glossario/57-pilloleglossario/207-rsync-protocol-mismatch-error

Z0rn
22-05-2009, 10:36
Perdona l'ignoranza, non conosco l'uso di spawn, ma rsync, utilizzato da solo, non mi ha mai dato i problemi che dici, anche con files di grosse dimensioni e banda ridotta. Quindi, cosa vuoi far fare allo script esattamente, e a che serve spawn?

ToNyT
22-05-2009, 12:13
se mi sbaglio correggete pure

spawn nella shell expect serve a creare dei processi figli.

utilizzo lo script perchè ho necessità di automatizzare la rsync.
Quando lancio lo script non ho più bisogno di inserire la password a mano, per fare questo uso expect.

Lo script in se per se funziona, no mi dà errori.

Anche se lancio la rsync da sola ho lo stesso problema

--------------------------------------------------------------------
Detroit
ho fatto la prova che mi hai segnalato e va bene, nel senso che il file è vuoto.

Che può essere?

Continua la ricerca della soluzione

detroit
22-05-2009, 12:22
Originariamente inviato da ToNyT
se mi sbaglio correggete pure

spawn nella shell expect serve a creare dei processi figli.

utilizzo lo script perchè ho necessità di automatizzare la rsync.
Quando lancio lo script non ho più bisogno di inserire la password a mano, per fare questo uso expect.

Lo script in se per se funziona, no mi dà errori.

Anche se lancio la rsync da sola ho lo stesso problema

--------------------------------------------------------------------
Detroit
ho fatto la prova che mi hai segnalato e va bene, nel senso che il file è vuoto.

Che può essere?

Continua la ricerca della soluzione

l'errore che dava a me era dato dal fatto che all'interno del .bashrc c'era un'istruzione che provocava l'interruzione del trasferimento. Fai una prova, svuota il .bashrc (non prima di averne fatto una copia di backup) e riprova. Poi per la cosa che dici tu cioè automatizzare senza inserire la password io penso che fai prima a fare trasferimento via ssh, piazzi una chiave pubblica sulla macchina bersaglio ed è fatta, questa è la sintassi che uso sulle mie macchine

rsync -avr --progress -e ssh /home/valentino/ 192.168.1.4:/home/valentino/

Loading