Ubuntu 16.04 rsync – haciendo copias de seguridad del servidor NAS, ¿puedo decirle que excluya todos los directorios .Trash?

Yo uso mi NAS para respaldar varios sistemas más pequeños que monitorean la planta solar, usando rsync. Funciona muy bien. Ahora quiero hacer una copia de seguridad de toda la unidad NAS.

Hay subdirectorios para cada máquina linux – 8 de ellos.

Como he aprendido más y ajustado mis exclusiones veo un montón de sobras que me olvidé de excluir antes.

En el pasado /.trash-1000 directorios /lost+found pero no pensé en /.trash-1000 y ahora hay muchos de ellos.

Simplemente agregándolos a la lista --delete , incluso con --delete no los elimina porque exclude hace que el programa rsync los omita completamente.

No funciona de la misma manera que Robocopy / MIR.

Así que comencemos con .Trash y creo que la respuesta me ayudará si encuentro otros que originalmente olvidé excluir.

Obviamente, una solución es eliminar el directorio completo de cada servidor a su vez y volver a ejecutar un rsync completo con el nuevo conjunto de exclusiones.

Pero eso es mucho trabajo, por decir lo menos.

Así que mi pregunta es, cuando hago un rsync completo de la unidad NAS, ¿hay una manera genérica de excluir todas las carpetas .Trash-1000? Si esto funciona, puedo cambiar las unidades y reanudar las operaciones con el más limpio.

Estoy buscando algo como esto:

 --exclude="*.Trash*" 

… por lo que no copiarlos, independientemente de su ubicación en la estructura de directorios.


Realmente quiero saber cómo hacer esto con rsync, y estoy buscando una solución al problema de cómo la adición excluye causas rsync para saltarlos en lugar de eliminarlos.

Alternativamente, en lugar de hacerlo durante los rsyncs, daría la bienvenida a una respuesta que me mostraría cómo buscar y destruir estos directorios en el disco NAS original.

Rsync – Cómo hacerlo eliminar directorios o archivos recientemente agregados a la lista de exclusiones

Aquí hay algunas preguntas y respuestas que hablan con la alternativa:

¿Cómo eliminar directorios basados ​​en la salida de find ?

Cómo quitar carpetas con un nombre determinado

Encontrar + eliminar archivos que contengan "."

Y entre ellos creo que mi mejor opción para el problema inmediato es eliminarlos de la unidad original ejecutando esto en el directorio que contiene las copias de seguridad completas de los otros sistemas:

 cd /mnt/full sudo rm -rf `sudo find -type d -name '.Trash-1000'` 

Buscar y destruir, hoo-rah!

Funcionó y hará que el trabajo futuro de rsync sea más rápido en el futuro.


Esto no soluciona el error rsync, sin embargo.


Si alguien tiene una respuesta que hará rsync eliminar directorios que más tarde agregar a la lista --exclude , entonces esa sería la respuesta que con mucho gusto aceptar.

En cuanto a la primera parte de la respuesta: Cómo hacer que funcione como Robocopy / MIR (/ PURGE),

Resulta que rsync tiene un

 --delete-excluded 

cambiar.

Eso soluciona el problema.