Errore di cancellazione comandi rsync "Errore IO rilevato - ignora eliminazione file"


16

Uso il comando rsync per portare il backup dei file da uno dei miei server Ubuntu su un'altra macchina Ubuntu. Il server di backup attiva uno script che utilizza il comando rysnc. Ecco il comando che uso

rsync -rltvh --partial --stats --exclude = .beagle / --exclude =. * --delete-after root @ live_server: / home / / home / live_server_backup / home >> /tmp/logfile.log 2> & 1

live_server è abilitato per ssh senza password. Quindi funziona. Ora il problema è con

opzione --delete-after

Dopo che tutti i file sono stati sincronizzati. Alla fine posso vedere la procedura di cancellazione skipped.logfile errore è come

Si è verificato un errore IO - Salta l'eliminazione del file

Quando ho provato a trovare il registro c'erano alcuni errori durante la sincronizzazione dei file

rsync: send_files non è riuscito ad aprire "/home/xyz/Desktop/PPT_session_1_context.pdf": Autorizzazione negata (13)

Quindi la mia comprensione è che rsync non è riuscito a leggere tutti i file dalla destinazione per motivi di sicurezza, sta saltando la cancellazione dei file.

C'è un modo per far funzionare --delete-after anche se c'è qualche errore di autorizzazione? Non voglio usare la cancellazione forzata poiché sarà pericolosa in alcune situazioni.


1
Pssst di nuovo ... Dovresti davvero.
Armel Larcier,

Risposte:


13

Nota aggiuntiva su questo problema:

vanished file non dovrebbe innescare la condizione IO error encountered -- skipping file deletion , ma ciò accade spesso quando si crea un backup di un sistema live.

Questo è coperto dal bug # 7809 di rsync ( https://bugzilla.samba.org/show_bug.cgi?id=7809 ) e dovrebbe essere risolto nella prossima versione 3.1.0.

Nel frattempo usa:

--ignore-errors         delete even if there are I/O errors

19

Dalla pagina man di rsync:

--ignore-errors         delete even if there are I/O errors

Questo affronterà il tuo problema.


2

È necessario utilizzare un file di esclusione per rsyncignorare i file che non è in grado di leggere. L'elenco può essere generato con find . -exec test -r '{}'nella directory di origine e quindi massaggiato nel formato di file di esclusione rsyncdesiderato.


in realtà la mia directory di origine è piuttosto grande (10-12 GB). Quindi ogni volta che trovare i file (senza permesso di lettura) non sarà efficace. cosa dici?
XemX,

Eseguilo una volta per creare l'elenco di esclusioni e non eseguirlo di nuovo a meno che non venga aggiunto un sacco di nuovi file illeggibili. rsync sta facendo lo stesso attraversamento di alberi, quindi non dovrebbe essere così male.
Kyle Jones il

Sì. Ma è così che è il mio scenario. La directory di origine quotidiana può introdurre tali file. e ho bisogno di eseguire il backup dei nuovi file nella macchina di backup.
XemX il

C'è una soluzione funzionante a questo? Uso anche rsync per i backup da un sistema live e quando si verifica un errore I / O sulla macchina di lettura, i file vengono eliminati sulla macchina di destinazione, che NON DOVREBBE AVERE SUCCESSO!
bzero,
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.