2016-05-22 19 views
0

Ich habe ein Btrfs-Dateisystem, bestehend aus mehreren Festplatten, in denen etwa 11 TB Daten gespeichert ist. Mein Backup besteht aus einem NAS, der einen Pfad über NFS exportiert. Der Pfad wird dann auf dem Rechner mit dem btrfs-bilesystem bereitgestellt und rsync wird aufgerufen, um den nfs-Export mit dem Hauptdateisystem synchronisiert zu halten. Ich rufe rsync mit einem -v auf und sende die Ergebnisse des Laufs an meinen E-Mail-Account, um sicherzustellen, dass alles korrekt synchronisiert ist. Jetzt habe ich durch Zufall herausgefunden, dass einige Verzeichnisse nicht korrekt synchronisiert wurden - die Verzeichnisse existierten auf dem NAS, aber sie waren leer. Es ist höchstwahrscheinlich kein Rechteproblem, da rsync als root ausgeführt wird. So scheint es, dass rsync in meiner Situation nicht absolut vertrauenswürdig ist, aber ich möchte die beiden Verzeichnisbäume vergleichen, um zu sehen, ob irgendwelche Dateien auf dem NAS fehlen und/oder ob es Dateien gibt, die nicht mehr auf den Btrfs existieren und welche sollten wurden von rsync gelöscht. (Ich verwende die Option --delete).Vergleichen Sie zwei Verzeichnisbäume

Ich bin daher auf der Suche nach einem Programm oder einem Skript, das mir helfen kann, zu überprüfen, ob rsync korrekt ausgeführt wird. Ich brauche nichts Kompliziertes wie Checksummen, alles was ich wissen möchte, ob der NAS alle Dateien im btrfs-Dateisystem enthält.

Irgendwelche Vorschläge, wo man anfangen sollte zu suchen?

Ihr Stefan

Antwort

0

Führen Sie die folgenden Befehle alle Dateien auflisten:

find /path/to/fs -type f | sort > filesystem.txt 
find /path/to/nfs -type f |sort > nfs.txt 

dann die Listen vergleichen:

diff -u filesystem.txt nfs.txt 
+0

ich auf das Problem gearbeitet und es scheint, dass rsync nicht ist Erkennen von Dateien in einem Verzeichnis wie es sollte. Danke für den Tipp mit Diff übrigens, Roland. Laufen rsync mit rsync --delete -avvv/mnt/Btrfs-raid/Downloads// mnt/qnap/Downloads Ausgangsleitungen wie recv_files (ATOS/00014.m2ts) recv_files (ATOS/00037.clpi) recv_files (ATOS/00037.m2ts) und fertig mit: recv_files Phase = 1 generate_files Phase = 2 send_files Phase = 2 Dateien total fertig senden: Streichhölzer = 0 hash_hits = 0 false_alarms = 0 data = 0 recv_files Phase = 2 recv_files fertig generate_files phase = 3 generate_files beendet –

+0

gesendet 4,865 byte empfangen 59,368 byte 128,466.00 byte/sek Gesamtgröße ist 345,102,247,470 Beschleunigung ist 5,372,662.77 [Absender] _exit_cleanup (code = 0, Datei = main.c, Zeile = 1183): über exit (0) noch anrufen, auf dem qnap das Verzeichnis, aus dem die Dateien vorhanden sind aber ist leer. –

+0

Standardmäßig verwendet rsync einen "Quick-Check" -Algorithmus, bei dem nur die Dateigröße und die zuletzt geänderte Zeit verglichen werden, um zu entscheiden, ob sich eine Datei geändert hat. Sie könnten versuchen, rsync mit der Option '-c' auszuführen, so dass eine Prüfsumme berechnet und verglichen wird, um zu entscheiden, welche Datei geändert wurde. Das wird natürlich langsamer laufen. –