expect rsync file vanished exit code 24

18/09/2007 by - Linux

rsync in presenza di file “scomparsi” (in inglese vanished) ritorna un exit code 24

$ man rsync
24 Partial transfer due to vanished source files

Ci sono gà abbastanza flame sulla questione (ma anche simpatici wrapper che ritornano 0 anche in caso di questo tipo di errore) e non ci entro.

Se viene utilizzato expect (e/o altri linguaggi ) il problema è che l’esecuzione dell’istruzione successiva non viene effettuata ma termina.

Se il problema si manifesta durante l’ultima istruzione non sussiste, ma se lo scirpt dovesse eseguire più rsync di directory potenzialmente contenenti file “temporanei” (mail web proxy server in primis) il backup non sarebbe riutilizzabile.

Ecco un semplice modo per ovviare al problema, consapevoli che non tutti i file sono stati correttamente trasferiti. La prima parte presenta il backup di /etc che non dovrebbe subire questo fenomeno, e il backup di /var/www , direcotry potenzialmente ad alto contenuto “volatile”

#!/usr/bin/expect

log_user 1
exec rsync -e ssh -v -P -R -u -a --blocking-io --numeric-ids --delete --ignore-errors [email protected]:/etc /var/backups/www.texilee.it
puts "www.texilee.it:/etc OK"
puts ""

set err_code [catch {exec rsync -e ssh -v -P -R -u -a --blocking-io --numeric-ids --delete --ignore-errors [email protected]:/var/www /var/backups/www.texilee.it}]
if {1==$err_code} {
puts "www.texilee.it:/var/www OK error code 24"
} else {
puts "www.texilee.it:/var/www OK"
}



Lascia un commento

Questo sito usa Akismet per ridurre lo spam. Scopri come i tuoi dati vengono elaborati.