Sincronización bidireccional con rsync
Tengo una carpeta a / y una carpeta remota A /. Ahora ejecuto algo como esto en un Makefile:
get-music:
rsync -avzru server:/media/10001/music/ /media/Incoming/music/
put-music:
rsync -avzru /media/Incoming/music/ server:/media/10001/music/
sync-music: get-music put-music
cuando hago música sincronizada, primero obtiene todos los diferenciales del servidor al local y luego lo contrario, enviando todos los diferenciales del local al servidor.
Esto funciona muy bien solo si solo hay actualizaciones o nuevos archivos en el futuro. Si hay eliminaciones, no hace nada.
En rsync hay opciones --delete y --delete-after para ayudar a lograr lo que quiero, pero la cosa es que no funciona en una sincronización bidireccional.
Si quiero eliminar los archivos del servidor de forma sincronizada, cuando se han eliminado los archivos locales, funciona, pero si, por alguna razón (explicada después) tengo algunos archivos que no están en el servidor pero existen localmente y se eliminaron, Quiero eliminarlos localmente y no copiarlos en el servidor (como sucede).
La cosa es que tengo 3 máquinas en contexto:
escritoriocuadernoservidor domésticoEntonces, a veces, el servidor tendrá archivos que se eliminaron con una sincronización de computadora portátil, por ejemplo, y luego, cuando ejecuto una sincronización con mi escritorio (donde los archivos del servidor eliminados todavía existen) quiero que estos archivos se eliminen y no se eliminen. copiado nuevamente al servidor.
Supongo que esto solo es posible con una base de datos y un seguimiento de las operaciones: P
¿Alguna solución más simple? Gracias.