Ich habe einen Linux-Webserver mit rsync und 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 ausführe, wird dann dieselbe Datei auf dem Server gelöscht / aktualisiert? Ich habe den Eindruck, dass beim Löschen / Ändern auf dem Server und Ausführen von rsync auf meinem Laptop die lokale Datei auf meinem Laptop gelöscht / geändert wird. Funktioniert dies jedoch in umgekehrter Reihenfolge?
25
unison
. Es ist ein Synchronisationstool, das den Dateizustand auf beiden Kopien speichert und somit eine bidirektionale Synchronisation ermöglicht. Es gibt auch ein Cygwin-Paket.Antworten:
Rsync führt eine einseitige Synchronisierung durch. Sie müssen jedoch entscheiden, in welche Richtung die Synchronisierung erfolgen soll.
Die Rsync-Befehlssyntax lautet wie folgt:
Beachten Sie, dass Sie die Synchronisierung von Quelle zu Ziel angeben. Quelle und Ziel können beliebige lokale oder entfernte Pfade sein.
Wenn Sie beispielsweise Dateien von Ihrem Server auf Ihren Laptop kopieren möchten, gehen Sie wie folgt vor:
So synchronisieren Sie in die entgegengesetzte Richtung:
Um Ihre Frage zu beantworten: Es hängt davon ab, wie Sie rsync ausführen.
Wenn Sie möchten, dass Dateien auf dem Ziel gelöscht werden, müssen Sie die
--delete
Option verwenden. Aber seien Sie vorsichtig damit, denn wenn Sie bei der Angabe Ihrer Quelle einen Fehler machen, werden Sie am Ende alles an Ihrem Ziel entfernen. Es ist sicherer, zuerst die Synchronisierung ohne--delete
Option zu testen. Wenn Sie mit der Funktionsweise zufrieden sind, können Sie die--delete
Option hinzufügen .Wie durch vorgeschlagen masegaloeh unten in den Kommentaren,
-n
oder--dry-run
Option auch zu Test verwendet werden kann ,rsync
Führungsverhalten.quelle
-n
oder verwenden--dry-run
, damit Sie wissen, welche Datei gelöscht und geändert wirdEin in python3 geschriebenes Wrapper-Tool namens
bsync
wrapsfind
undrsync
command vereinfacht die Aufgabe. Github-Repository: https://github.com/dooblem/bsyncHaben Sie keine Angst, wenn es auf Github läuft (dh auf eine Weise, die Sie für einen Programmierer halten).
quelle
Wenn Sie --delete-after und nicht --delete verwenden, wird sichergestellt, dass Ihr Empfangsende die Dateien nach der Übertragung löscht, nicht vorher.
quelle
rsync
irgendetwas zu löschen. Er löscht Dinge auf eigene Faust. Trotzdem ein hilfreicher Hinweis für das Rsync im Allgemeinen. Vielen Dank.