Frage Erlaubt Rsync, dass Dateien auf beide Arten synchronisiert werden?


Ich habe einen Linux-Webserver mit rsync mit Cygwin gesichert. Ich habe jetzt eine perfekte Kopie des Servers auf meinem Windows-Laptop. Wenn ich eine Datei auf meinem Laptop lösche oder ändere und rsync erneut mit cygwin starte, löscht / update sie dieselbe Datei auf dem Server? Ich habe den Eindruck, dass wenn ich auf dem Server lösche / verändere und rsync auf meinem Laptop starte, er die lokale Datei auf meinem Laptop löscht / modifiziert, aber funktioniert das umgekehrt?


21
2017-07-06 13:09


Ursprung


Dies ist keine Antwort auf Ihre Frage, aber Sie sollten einen Blick darauf werfen unison. Es ist ein Synchronisationstool, das den Dateistatus auf beiden Kopien speichert und somit eine bidirektionale Synchronisation ermöglicht. Es gibt auch ein Cygwin-Paket. - Dubu
cis.upenn.edu/~bcpierce/unison - Sam


Antworten:


Rsync macht eine einseitige Synchronisierung, aber es liegt an Ihnen, zu entscheiden, auf welche Weise die Synchronisierung geht.

Die Rsync-Befehlssyntax lautet wie folgt:

rsync [OPTION...] SRC... [DEST]

Beachten Sie, dass Sie die Synchronisierung von Quelle zu Ziel angeben. Quelle und Ziel können ein beliebiger lokaler oder entfernter Pfad sein.

Wenn Sie beispielsweise Dateien von Ihrem Server auf Ihren Laptop kopieren möchten, tun Sie Folgendes:

rsync [OPTION...] <server-path> <laptop-path>

Um in die entgegengesetzte Richtung zu synchronisieren, tun Sie Folgendes:

rsync [OPTION...] <laptop-path> <server-path>

Also, um Ihre Frage zu beantworten: Es hängt davon ab, wie Sie rsync ausführen.

Wenn Sie möchten, dass Dateien an dem Ziel gelöscht werden, das Sie verwenden müssen --delete Möglichkeit. Aber sei vorsichtig, denn wenn du bei der Angabe deiner Quelle einen Fehler machst, wirst du am Ende alles entfernen. Es ist sicherer, die Synchronisierung ohne zu testen --delete Option zuerst und sobald Sie mit der Funktionsweise zufrieden sind, können Sie hinzufügen --delete Möglichkeit.

Wie vorgeschlagen von Masegaloeh in den Kommentaren unten, -n oder --dry-run Option kann auch zum Testen verwendet werden rsync Befehlsverhalten.


27
2017-07-06 14:22



Zusätzliche Anmerkung: Zum Testen des rsync-Verhaltens können Sie Parameter verwenden -n oder --dry-run, damit Sie wissen, welche Datei gelöscht und geändert wird - masegaloeh


Ein Wrapper-Tool in python3 geschrieben aufgerufen bsync was umhüllt find und rsync Befehl vereinfacht die Aufgabe. Github Repo: https://github.com/dooblem/bsync

Haben Sie keine Angst, wenn es auf Github ist (d. H. In einer Weise, dass Sie denken, dass Sie ein Programmierer sein müssen, um das Werkzeug zu benutzen).


0
2017-12-05 23:09





Überlegen Sie sich, ob Sie --delete-after und nicht --delete verwenden, dies stellt sicher, dass Ihr empfangendes Ende Dateien nach der Übertragung löscht, nicht vorher.


-2
2017-07-07 18:26



Ich nehme an, dass die Downvotes sind, weil das OP nicht versucht hat zu haben rsync alles löschen Er löscht Sachen selbst. Nachdem das gesagt wurde, hilfreicher Hinweis für rsync'ing im Allgemeinen. Vielen Dank. - harperville