GNU/Linux >> LINUX-Kenntnisse >  >> Linux

Gründe dafür, dass rsync NICHT alle Dateien überträgt?

Diese Frage besteht aus 2 Teilen. Erstens, warum gibt es einen Unterschied zwischen "Anzahl der Dateien" und "Anzahl der übertragenen Dateien". Dies wird in der rsync-Manpage erklärt:

Anzahl der Dateien :ist die Anzahl aller "Dateien" (im allgemeinen Sinne), die Verzeichnisse, symbolische Links usw. enthalten.

Anzahl der übertragenen Dateien :ist die Anzahl der normalen Dateien, die über den Delta-Transfer-Algorithmus von rsync aktualisiert wurden, was nicht tut enthalten erstellte Verzeichnisse, symbolische Links usw. .

Die Differenz hier sollte gleich der Gesamtmenge an Verzeichnissen, symbolischen Links und anderen speziellen Dateien sein. Diese wurden nicht "übertragen", sondern nur neu erstellt.

Nun zum zweiten Teil, warum gibt es einen Größenunterschied zu du. du zeigt den Speicherplatz, der von einer Datei verwendet wird, nicht die Größe der Datei. Dieselbe Datei kann unterschiedlich viel Speicherplatz beanspruchen, wenn beispielsweise die Blockgrößen der Dateisysteme unterschiedlich sind.

Wenn Sie sich immer noch Sorgen um die Datenintegrität machen, können Sie ganz einfach Hashes für alle Ihre Dateien erstellen und vergleichen:

( cd /home/hholtmann && find . -type f -exec md5sum {} \; ) > /tmp/hholtmann.md5sum
( cd /media/wd750/c51/home/ && md5sum -c /tmp/hholtmann.md5sum )

An alle anderen armen verlorenen Seelen, die mitten in der Nacht im Urlaub arbeiten,

--checksum lässt rsync tatsächlich prüfen, ob es Änderungen in den Dateien gibt, ansonsten prüft es Zeitstempel und Dateigrößen und nennt es einen Tag,

das reicht in 99,9 % der Fälle aus und lässt dich für die restlichen 0,01 % in der Hölle schmoren, bis du das herausgefunden hast


Ich könnte genauso gut etwas hinzufügen, was ich gelernt habe.

Ich habe den Befehl rsync /path/source/* /path/to/destination/* verwendet (beachten Sie das Globbing). Es war umständlich, weil 90 % meiner Dateien bis auf wenige Ausnahmen übertragen worden waren (sie befanden sich sogar im selben Ordner wie einige, die übertragen wurden). Nach dem Entfernen des * Von Quelle und Ziel wurden sie alle übertragen. ¯\_(ツ)_/¯


Linux
  1. Schätzen Sie die verbleibende Zeit oder Arbeit bis zum Abschluss von Rsync?

  2. Vergleichen Sie Verzeichnisse, aber nicht den Inhalt von Dateien?

  3. Alle Dot Underscore-Dateien von Rsync ausschließen?

  4. Warum verwendet rsync keine Delta-Übertragung für lokale Dateien?

  5. bash - entfernt alle Verzeichnisse (und Inhalte), aber keine Dateien in pwd

Setzen Sie teilweise übertragene Dateien über SSH mit Rsync fort

Verwenden von rsync zum Synchronisieren von Dateien

Suche nach Dateien, die NICHT einem bestimmten Benutzer gehören

cp -r ohne versteckte Dateien

rsync N neueste Dateien in einem Verzeichnis

So rufen Sie rsync wiederholt auf, bis die Dateien erfolgreich übertragen wurden