Ho una cartella a / e una cartella remota A /. Ora eseguo qualcosa di simile su 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
quando creo musica di sincronizzazione, prima ottiene tutte le differenze dal server al locale e poi il contrario, inviando tutte le differenze dal locale al server.
Funziona molto bene solo se ci sono solo aggiornamenti o nuovi file in futuro. Se sono presenti eliminazioni, non viene eseguita alcuna operazione.
In rsync ci sono le opzioni --delete e --delete-after per aiutare a realizzare ciò che voglio, ma il fatto è che non funziona su una sincronizzazione a 2 vie.
Se voglio eliminare i file del server su una sincronizzazione, quando i file locali sono stati eliminati, funziona, ma se, per qualche motivo (spiegato dopo) ho alcuni file che non sono nel server ma esistono localmente e sono stati eliminati, Voglio rimuoverli localmente e non copiarli sul server (come accade).
Il fatto è che ho 3 macchine nel contesto:
- desktop
- taccuino
- home-server
Quindi, a volte, il server avrà file che sono stati eliminati con una sincronizzazione del notebook, ad esempio e quindi, quando eseguo una sincronizzazione con il mio desktop (dove i file del server eliminati esistono ancora) voglio che questi file vengano eliminati e non vengano copiato di nuovo sul server.
Immagino che questo sia possibile solo con un database e una traccia delle operazioni: P
Qualche soluzione più semplice? Grazie.