Zwei-Wege-Synchronisation mit rsync

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 vom Server zum lokalen und dann umgekehrt abgerufen und alle Unterschiede vom lokalen zum Server gesendet.

Dies funktioniert nur dann sehr gut, wenn es in der Zukunft nur Aktualisierungen 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 es funktioniert nicht bei einer 2-Wege-Synchronisation.

Wenn ich Serverdateien auf einer Synchronisation löschen möchte, funktioniert dies, wenn lokale Dateien gelöscht wurden. Wenn jedoch aus irgendeinem Grund (wie nachstehend erläutert) einige Dateien nicht auf dem Server vorhanden sind, sondern lokal vorhanden sind und gelöscht wurden Ich möchte, dass sie lokal entfernt und nicht vom Server kopiert werden (wie es passiert).

Das ist, ich habe 3 Maschinen im Kontext:

desktopNotizbuc home-server

So werden auf dem Server manchmal Dateien gespeichert, die beispielsweise mit einer Notizbuchsynchronisierung gelöscht wurden. Wenn ich dann eine Synchronisierung mit meinem Desktop (auf dem die gelöschten Serverdateien noch vorhanden sind) durchführe, möchten wir, dass diese Dateien gelöscht werden und nicht erneut auf den Server kopiert werden.

Ich denke, das ist nur mit einer Datenbank und einer Übersicht über die Operationen möglich: P

Irgendwelche einfacheren Lösungen? Vielen Dank

Antworten auf die Frage(18)

Ihre Antwort auf die Frage