¿Cómo limpiar después de rsync fallido?


12

Maté un proceso local "rsync -ah".
Dejó archivos basura como ".abc.vmdk.zxivMN" en el directorio de destino.
Los archivos basura no se eliminan en ejecuciones consecutivas "rsync -ah".

Detalles:
ejecuté diff en las dos carpetas que estaba sincronizando e informó: "Solo en / mnt / archive1 / documents / general: .abc.vmdk.zxivMN"

¿Cuál es la mejor manera de limpiar los archivos rsync temporales?

Respuestas:


12

Indique rsyncque elimine los archivos que no están en la fuente, con --delete-duringo --delete-after. Tenga cuidado y use esta opción solo si no tiene archivos legítimos en el destino que no están en la fuente.

Ver man rsync.

Por supuesto, siempre puede eliminar manualmente los archivos que detectó con diff...


Esto no es bueno cuando estás haciendo una copia en lugar de un movimiento.
Sridhar Sarnobat

6

Lo hago usando

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

para prueba y

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

para claro


-1

Encontré que el siguiente comando funcionó para mí al intentar eliminar los archivos temporales que dejó rsync después de una transferencia fallida.

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

Lo que hace es encontrar todos los archivos "ocultos" (archivos que comienzan con el carácter ".") Y los pasa al comando "rm" para eliminarlos.

Un problema obvio conocido con respecto al código anterior es que si su contenido contiene archivos ocultos, este comando también los eliminará.


-2

Estoy buscando una mejor solución, pero la única en la que puedo pensar es mover todos los emptyarchivos que comienzan con un ., y tener dos puntos más en ellos, a una carpeta de basura (usar rmes un poco arriesgado):

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

De ninguna manera infalible.


Votado a favor y sin explicación
Sridhar Sarnobat
Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.