Ich habe einen Ordner a / und einen Remote-Ordner A /. Ich führe jetzt so etwas auf einem Makefile aus:
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
Wenn ich Sync-Musik mache, werden zuerst alle Unterschiede von Server zu lokal und dann das Gegenteil abgerufen, wobei alle Unterschiede von lokal zu Server gesendet werden.
Dies funktioniert nur sehr gut, wenn es in Zukunft nur Updates oder neue Dateien gibt. Wenn es Löschungen gibt, macht es nichts.
In rsync gibt es die Optionen --delete und --delete-after, um das zu erreichen, was ich will, aber die Sache ist, dass es bei einer 2-Wege-Synchronisierung nicht funktioniert.
Wenn ich Serverdateien auf einer Synchronisierung löschen möchte, wenn lokale Dateien gelöscht wurden, funktioniert dies, aber wenn ich aus irgendeinem Grund (nachfolgend erläutert) einige Dateien habe, die nicht auf dem Server sind, aber lokal vorhanden sind und gelöscht wurden, Ich möchte sie lokal entfernen und nicht vom Server kopieren (wie es passiert).
Ich habe 3 Maschinen im Kontext:
- Desktop
- Notizbuch
- Heimserver
Manchmal hat der Server also Dateien, die beispielsweise mit einer Notebook-Synchronisierung gelöscht wurden. Wenn ich dann eine Synchronisierung mit meinem Desktop durchführe (auf dem die gelöschten Serverdateien noch vorhanden sind), möchte ich, dass diese Dateien gelöscht werden und nicht erneut auf den Server kopiert.
Ich denke, dies ist nur mit einer Datenbank und einer Verfolgung der Operationen möglich: P.
Einfachere Lösungen? Danke dir.