Warum kopiert rsync Dateien, nachdem die Dateien manuell kopiert wurden?

Warum kopiert rsync Dateien, nachdem die Dateien manuell kopiert wurden?

Ich habe mit Bash viele Dateien in vielen Ordnern (~54 GB) von einem ext4-Speicherort zu einem anderen kopiert cp ~/1 ~/2 -d -r -v -i. Dann wollte ich überprüfen, ob alle Dateien richtig kopiert wurden, also habe ich ausgeführt rsync --delete -vturOn ~/1 ~/2, aber rsync wollte alle Dateien kopieren. Warum ist das so?

cpPS: Ich wollte es mit verwenden -a, habe es aber -dversehentlich verwendet.

Edit: Eine AntwortHier--itemize-changeshat mich dazu gebracht, das Flag zu verwenden , das mir >f..t......für alle Dateien angezeigt wird. Die Manpage gibt an, dass die tÄnderungszeiten unterschiedlich sind, der Dateityp eine Datei ist ( f) und nur die Elementattribute geändert werden ( .). Ist das richtig? Es werden also nur die Änderungszeiten geändert?

Bearbeiten: Ich habe das ausgeführt rsync(ohne das -n) und obwohl die tÄnderungszeiten unterschiedlich waren, wurden alle Dateien erneut kopiert (der eigentliche Dateiinhalt), was unerwartet ist, da rsync ohnehin eine Diff-Kopie durchführen sollte, was zu beachten ist, oder?

Bearbeiten: Die Synchronisierung wurde gestoppt und ohne den -tParameter erneut ausgeführt. Jetzt zeigten die aufgelisteten Änderungen „T“ statt t. Es scheint, dass ich alle Dateien mindestens einmal über rsync kopieren muss, wenn ich rsync in Zukunft auf diese Dateien anwenden möchte.

Edit: Habe die Zieldateien gelöscht und alles nochmal mit rsync mit -vanParametern kopiert.

Antwort1

Aus der rsync-Dokumentation:

Rsync findet Dateien, die übertragen werden müssen, mithilfe eines „Quick Check“-Algorithmus (standardmäßig), der nach Dateien sucht, deren Größe oder deren letzte Änderungszeitpunkt sich geändert hat.

Wenn sowohl die Quelle als auch das Ziel lokal sind, rsyncwird die --whole-fileOption standardmäßig ausgeführt.

-W, --whole-file

Mit dieser Option wird der Delta-Transfer-Algorithmus von rsync nicht verwendet, sondern die gesamte Datei wird so gesendet, wie sie ist. Die Übertragung kann schneller sein, wenn diese Option verwendet wird, wenn die Bandbreite zwischen Quell- und Zielcomputer höher ist als die Bandbreite zur Festplatte (insbesondere, wenn die „Festplatte“ tatsächlich ein vernetztes Dateisystem ist). Dies ist die Standardeinstellung, wenn sowohl Quelle als auch Ziel als lokale Pfade angegeben sind, aber nur, wenn keine Option zum Stapelschreiben aktiviert ist.

Ich bin nicht sicher, aber es hört sich so an, als ob Sie diese Option wünschen --checksum.

-c, --checksum              skip based on checksum, not mod-time & size

Beachten Sie, dass zum Berechnen der Prüfsumme sowohl die Quell- als auch die Zieldateien von der Festplatte gelesen werden müssen.

Mehr dazu:

https://superuser.com/a/118984/219809

https://serverfault.com/a/279346

verwandte Informationen