Uso rsync para duplicar mi disco duro en un par de dispositivos con cron.

El comando es esencialmente esto:

rsync -avr --delete /home/username [email protected]:/home/username

El problema que tengo es que algunos de los directorios dentro de la estructura están en unidades separadas. Por ejemplo / home / username / portable es una memoria USB. Como resultado, si el trabajo cron se ejecuta cuando se desmonta el sistema de archivos, se elimina una gran cantidad de datos del espejo y luego se debe volver a copiar la próxima vez que se ejecute con la unidad montada. Esto lleva mucho tiempo y, por supuesto, supongo que cuando necesite restaurar desde el espejo, ¡será inmediatamente después de que esto haya sucedido!

¿Alguien podría sugerir una buena manera de militar contra este problema? Aprecio que dos formas posibles serían ver si

  1. El dispositivo se monta mediante grep'ing df o similar; o
  2. El directorio de destino no tiene contenido ejecutando du / home / username / portable o similar.

Si bien esta es probablemente la forma correcta de abordar este problema, ambos requieren un ajuste manual cada vez que se agrega un nuevo punto de montaje al sistema de archivos que no es atractivo para mi perspectiva perezosa.

Lo que me preguntaba especialmente es si hay una manera de hacer que rsync pruebe cuántos datos se eliminarán del disco remoto ejecutando --delete? De esa manera, el script cron podría modificarse para requerir la participación manual si, por ejemplo, se va a eliminar más de 1 GB. Por lo tanto, proporcionaría un control de cordura contra la pérdida accidental de datos a gran escala.

He echado un vistazo al manual, pero no puedo ver una manera directa de hacerlo. ¿Alguien puede ayudar?

¡Gracias!

Sarrusophone
fuente