Come pulire dopo rsync fallito?


12

Ho ucciso un processo locale "rsync -ah".
Ha lasciato file spazzatura come ".abc.vmdk.zxivMN" nella directory di destinazione.
I file spazzatura non vengono eliminati in esecuzioni consecutive di "rsync -ah".

Dettagli:
ho eseguito diff su entrambe le cartelle che stavo sincronizzando e riportava: "Solo in / mnt / archive1 / documenti / generale: .abc.vmdk.zxivMN"

Qual è il modo migliore per ripulire i file rsync temporanei?

Risposte:


12

Indica rsyncdi eliminare i file non presenti nel sorgente, con --delete-duringo --delete-after. Fai attenzione e usa questa opzione solo se non hai file legittimi sulla destinazione che non ci sono sulla fonte.

Vedere man rsync.

Naturalmente, puoi sempre eliminare manualmente i file rilevati con diff...


Questo non va bene quando stai facendo una copia piuttosto che una mossa.
Sridhar Sarnobat,

6

Lo faccio usando

find -type f -iname ".*.*.??????" -ls

per test e

find -type f -iname ".*.*.??????" -delete

per chiaro


-1

Ho trovato il seguente comando funzionato per me quando ho cercato di eliminare i file temporanei lasciati da rsync dopo un trasferimento fallito.

find vod-content/ -path '*/.*' -print0 | xargs -0 -r rm -v

Ciò che fa è trovare tutti i file "nascosti" (file che iniziano con il carattere ".") E li passa al comando "rm" per eliminarli.

Un ovvio problema noto relativo al codice sopra è se i tuoi contenuti contengono file nascosti, questo comando eliminerà anche quelli.


-2

Sto cercando una soluzione migliore ma l'unica che mi viene in mente è quella di spostare tutti i emptyfile a partire da a ., e con altri due punti, in una cartella cestino (usare rmè un po 'rischioso):

find -type f -empty -iname ".*.*.*" | xargs -n 1 -d'\n' mv -v -t /tmp/

Non infallibile.


Downvoted senza alcuna spiegazione
Sridhar Sarnobat,
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.