¿Cómo usar rsync con --delete dejando intactos los directorios sin respaldo?

¿Cómo usar rsync con --delete dejando intactos los directorios sin respaldo?

Sé que hay bastantes hilos sobre "rsync y enlaces simbólicos", pero no puedo encontrar uno que se aplique a mi problema.

Quiero usar rsync para hacer copias de seguridad de una /homepartición, con el añadido de que /home contiene algunos directorios personales reales y algunos enlaces simbólicos a otro sistema de archivos:

/home/user1 (a directory)
/home/user2 (a symlink to another fs)

Intento usar:

rsync -axv --delete /home /some_backup/

Donde /some_backupya contiene:

/some_backup/home/user1
/some_backup/home/user2
/some_backup/home/user3

…de los cuales los directorios user2y user3se llenan con otro rsync de otra computadora. Desafortunadamente, esta línea rsync no funciona, ya que mi llamada rsync se eliminará /some_backup/home/user3(porque no está presente en mi /home) y también /some_backup/home/user2(porque es un enlace simbólico fuera de fs).

¿Hay alguna manera de decirle a rsync que ignore los directorios de destino que no coinciden en el origen? Necesito --deleteporque de lo contrario se requiere este comportamiento.

Una posible solución es tener una declaración rsync para cada directorio /home/user que deba copiarse (en lugar de hacer una copia de seguridad de todo el directorio /home). Esto no es lo ideal, ya que los usuarios van y vienen, lo que requeriría mucho más mantenimiento.

información relacionada