Ich habe zwei Server und möchte rsync
Dateien von beiden Servern an einem einzigen Speicherort speichern.
- Server 1 hat die Dateien A und B
- Server 2 hat die Dateien A und B
- Nachdem
rsync
Server 3 die Dateien A und B hat
Wenn ein Benutzer Datei A von Server 1 und Datei B von Server 2 löscht, sollten sich auf Server 3 keine Dateien befinden.
Aber in meinem Setup funktioniert es nicht richtig:
rsync --delete server1 server3
rsync --delete server2 server3
Zuerst wird A und dann B gelöscht, aber A wird erneut von Server 2 kopiert. Anstatt ein leeres Verzeichnis zu erhalten, lande ich wieder bei A.
Kennt jemand eine Lösung dafür?
Antwort1
Der von Ihnen ausgeführte rsync-Befehl macht Server3 zu einer strikten Kopie des Servers, von dem er kopiert. Er wird also zu einem Klon von Server1 (wobei A fehlt und B vorhanden ist). Anschließend weisen Sie ihn an, ein Klon von Server2 zu sein (wobei A dort fehlt und B fehlt).
Können Sie eine Ebene zurückgehen und erklären, was Sie hier beabsichtigen?
Antwort2
Hast du es versucht
rsync -u --delete server1 server3
rsync --delete server2 server3
Von der rsync-Manpage:
-u, --update update only (don’t overwrite newer files)
Unabhängig davon, ob Server1 oder Server2 die Synchronisierung zuerst durchführt, wird berücksichtigt, ob sich die Datei bereits auf Server3 befindet.
Beachten Sie jedoch, dass Sie Ihre Rsync-Befehle in ein Skript einfügen und eine Flag-Datei einfügen sollten, um anzuzeigen, dass die Synchronisierung nicht ausgeführt wird, wenn das andere Skript ausgeführt wird.
Sagen Sie mir Bescheid, ob das hilft.