Kennt jemand häufige Gründe für einen so großen Defizitunterschied in der Anzahl der übertragenen Dateien, wenn mein GROSSES Home-Verzeichnis mit rsync auf einem Ubuntu 10.04 LTS-Setup gesichert wird? Die Maschine ist stabil und alle Volumes sind sauber ext4 - keine Fehler von fsck.ext4.
Number of files: 4857743
Number of files transferred: 4203266
Das ist ein Unterschied von 654.477 Dateien !!!
Ich möchte meinen vollständigen Home-Ordner auf einer externen Festplatte sichern, damit ich mein System vollständig löschen und neu formatieren und dann mein Home von dieser rsync-Sicherung wiederherstellen kann. Ich befürchte jedoch, dass wichtige Datendateien fehlen.
Ich war als root angemeldet und habe mit rsync mein Verzeichnis / home / hholtmann / * auf einem Ersatz-Backup-Laufwerk in / mnt / wd750 / c51 / home / gesichert.
Hier ist die Befehlszeile, die ich als root verwendet habe
root@c-00000051:~# pwd
/root
root@c-00000051:~# rsync -ah --progress --stats /home/hholtmann /mnt/wd750/c51/home/ -v
Erfasste Zusammenfassungsausgabe von rsync
Number of files: 4857743
Number of files transferred: 4203266
Total file size: 487.41G bytes
Total transferred file size: 487.41G bytes
Literal data: 487.41G bytes
Matched data: 0 bytes
File list size: 102.48M
File list generation time: 0.001 seconds
File list transfer time: 0.000 seconds
Total bytes sent: 487.75G
Total bytes received: 82.42M
Nur um ein wichtiges Projekt-Unterverzeichnis in meinem Haus nach rsync zu vergleichen:
Byte-Unterschied zwischen einem Quell- und einem Ziel-Unterverzeichnis mit du
root@c-00000051:~# du -cs /home/hholtmann/proj/
18992676 /home/hholtmann/proj/
18992676 total
root@c-00000051:~# du -cs /media/wd750/c51/home/hholtmann/proj/
19006768 /mnt/wd750/c51/home/hholtmann/proj/
19006768 total
JEDOCH: KEIN FILE COUNT Unterschied zwischen denselben Quell- und Ziel-Unterverzeichnissen
root@c-00000051:~# find /home/hholtmann/proj/ -type f -follow | wc -l
945937
root@c-00000051:~# find /mnt/wd750/c51/home/hholtmann/proj/ -type f -follow | wc -l
945937
Warum so unerwartete Ergebnisse? Eine Datei ist eine Datei ... insbesondere im Home-Verzeichnis eines Benutzers!
Was vermisse ich? Oder ist das ein Zeichen, dass ich bereit für das Management bin!?!
LÖSUNG und ANTWORT:
Die unten ausgewählte Antwort erklärt den Unterschied in der Byteanzahl und meine falsche Erwartung der rsync-Zusammenfassungsdaten. Ich war nur überrascht von diesem Byte-Unterschied, da beide Volumes ext4 mit Standardblockgrößen sind. Ich habe nur angenommen, dass jede Datei in Bezug auf die du
Anzahl den gleichen Platz einnimmt.
Ich habe einige Dateien gefunden, die NICHT rsynciert wurden, indem ich rsync eine ausführlichere Ausgabe hinzufügte -vv
, indem ich rsync hinzufügte und erneut ausführte .
Was ich sah, waren Fehler von rsync, die besagten, dass es aufgrund der "erweiterten Attribute" in den Dateien KEINE meiner DROPBOX-Verzeichnisdateien an das Ziel schreiben konnte. rsync übersprang alle meine Dropbox-Pfaddateien.
Endet, dass mein / home-Volume mit der user_xattr
Option ext4 mount in der Datei / etc / fstab bereitgestellt wurde:
/dev/mapper/vg1-lv_home /home ext4 nobarrier,noatime,user_xattr 0 2
# I HAD to add the ,user_xattr option to match my home volume
/dev/sda1 /mnt/wd750 ext4 nobarrier,noatime,user_xattr 0 2
Nachdem ich zum dritten Mal einen weiteren vollständigen Rsync durchgeführt hatte, entschied ich mich, eine Dateianzahl die ganze Nacht in meinem vollständigen Home-Ordner laufen zu lassen und ein rsync-Backup zu erstellen:
root@c-00000051:~# find /home/hholtmann/ -type f | wc -l
4203266
root@c-00000051:~# find /mnt/wd750/c51/home/hholtmann/ -type f | wc -l
4203266
** Eine perfekte Zusammenstellung von Dateien **
FAZIT:
** Stellen Sie immer sicher, dass Ihre Backup-Volumes mit genau den gleichen Dateisystem-Mount-Optionen wie die Quelle gemountet sind UND aktivieren Sie die vollständige Protokollierung mit rsync für eine spätere Grep-Analyse, um nach Fehlern in langen Dateilisten zu suchen! ** **.
diff
zu sehen, was die tatsächlichen Unterschiede sind?man diff
ist dein Freund in Bezug auf die Verwendung von Diff. Das Dienstprogramm md5deep kann ebenfalls nützlich sein.Antworten:
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:
Der Unterschied sollte hier gleich der Gesamtzahl der Verzeichnisse, Symllinks und anderer spezieller 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 von einer Datei verwendeten Speicherplatz an, nicht die Größe der Datei. Dieselbe Datei kann unterschiedlich viel Speicherplatz beanspruchen, wenn sich beispielsweise die Blockgrößen der Dateisysteme unterscheiden.
Wenn Sie sich immer noch Sorgen um die Datenintegrität machen, können Sie auf einfache Weise Hashes für alle Ihre Dateien erstellen und vergleichen:
quelle
An alle anderen armen verlorenen Seelen, die mitten in der Nacht aus dem Urlaub arbeiten,
--checksum
Lässt rsync tatsächlich prüfen, ob Änderungen an den Dateien vorgenommen wurden. Andernfalls werden Zeitstempel und Dateigrößen überprüft und ein Tag aufgerufen.Dies ist in 99,9% der Fälle ausreichend und lässt Sie für den Rest der 0,01% in der Hölle brennen, bis Sie dies herausfinden
quelle
Versuchen Sie Folgendes, dies kann Ihnen helfen,
quelle
Ich könnte genauso gut etwas hinzufügen, was ich gelernt habe.
Ich habe den Befehl verwendet
rsync /path/source/* /path/to/destination/*
(beachten Sie das Globbing). Es war umständlich, da 90% meiner Dateien mit wenigen Ausnahmen übertragen wurden (sogar im selben Ordner wie einige, die übertragen wurden). Nach dem Entfernen*
von Quelle und Ziel wurden alle übertragen. ¯ \ _ (ツ) _ / ¯quelle
rsync source/* dest/*
hätte den Effekt, dass alle Dateien, die mit source / * übereinstimmen, UND diejenigen, die mit dest / * übereinstimmen, in das zuletzt aufgelistete Ziel / * kopiert werden!