Ich kopiere viele Dateien, die sich mit rsync von einem Server auf einen anderen geändert haben. Ich weiß, dass ich die -n
Option für einen Probelauf verwenden kann, damit ich sehen kann, welche Dateien geändert wurden. Ist es jedoch möglich, rsync zu veranlassen, einen Unterschied des Dateiinhalts zu drucken, der geändert wurde? Ich möchte sehen, was passiert, bevor ich eine Kopie mache. Kann ich etwas in eine Datei speichern und das später mit diff (1) anwenden?
19
rsync --diff
zwei Jahre später eine neue / bessere Methode gibt ...rsync kann dies nicht von Haus aus tun, aber wenn die Möglichkeit besteht, unisono zu arbeiten , können Sie daraus ein Diff-Format erzeugen.
quelle
Zum Erstellen eines Patches:
Zum Anwenden:
oder verwenden Sie ein automatisch generiertes Skript:
Quellen:
quelle
Dies ist nativ nicht möglich, da rsync nur binäre Unterschiede zwischen Dateien berücksichtigt.
Möglicherweise können Sie es mithilfe der Ausgabe von rsync skripten. Aber es wäre hackisch.
Ich glaube, dass es mit Unison von Haus aus möglich ist .
quelle
Warum nicht einfach so etwas wie diff (für Textdateien) oder xdelta (für Binärdateien) verwenden, um die Diffs zu generieren? Warum müssen Sie speziell etwas aus rsync herausholen?
quelle
Um die Antwort von Kyle zu erweitern, automatisiert dies den Prozess. Beachten Sie, dass es völlig ungetestet ist, wahrscheinlich ziemlich zerbrechlich und Ihren Computer löschen und Ihren Hund töten kann.
quelle
Der rsync-Algorithmus vergleicht die Binärblöcke der Datei. Ein solches binäres Diff soll nicht druckbar sein. Es gibt einen Befehl namens rdiff , der den rsync-Algorithmus verwendet, um ein binäres Diff zu generieren, aber ich glaube nicht, dass er für das, was Sie beschreiben, nützlich ist. Er wird häufig zum Implementieren inkrementeller Sicherungen verwendet.
quelle