2016-05-22 7 views
0

J'ai un système de fichiers btrfs composé de plusieurs disques durs dans lequel est stocké environ 11 To de données. Ma sauvegarde consiste en un NAS qui exporte un chemin via NFS. Le chemin est ensuite monté sur la machine avec le système btrfs-bilesystem et rsync est appelé pour que l'export nfs soit synchronisé avec le système de fichiers principal. J'appelle rsync avec un -v et envoie les résultats de la course à mon compte email pour être sûr que tout est synchronisé correctement. Maintenant, par pur hasard, j'ai découvert que certains répertoires n'étaient pas synchronisés correctement - les répertoires existaient sur le NAS mais ils étaient vides. Il ne s'agit probablement pas d'un problème de droits car rsync est exécuté en tant que root. Il semble donc que dans ma situation, rsync n'est pas entièrement digne de confiance mais j'aimerais comparer les deux arborescences de répertoires pour voir s'il manque des fichiers sur le NAS et/ou s'il y a des fichiers qui n'existent plus sur btrfs et qui devraient ont été supprimés par rsync selon. (J'utilise l'option --delete). Je recherche donc un programme ou un script qui puisse m'aider à vérifier si rsync fonctionne correctement. Je n'ai besoin de rien de compliqué comme des checksums, tout ce que je veux savoir si le NAS contient tous les fichiers du système de fichiers btrfs.Comparer deux arborescences de répertoires

Des suggestions où commencer à chercher?

vôtre, Stefan

Répondre

0

Exécutez les commandes suivantes pour lister tous les fichiers:

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

Ensuite, comparez les listes:

diff -u filesystem.txt nfs.txt 
+0

j'ai travaillé sur le problème et il semble que rsync n'est pas reconnaître les fichiers dans un répertoire comme il se doit. Merci pour le conseil de diff au fait, Roland. Rsync en cours avec rsync --delete -avvv/mnt/Btrfs-raid/Téléchargements// mnt/QNAP/Téléchargements lignes de sortie comme recv_files (ATO/00014.m2ts) recv_files (ATO/00037.clpi) recv_files (ATOS/00037.m2ts) et fini avec: recv_files la phase = 1 generate_files la phase = 2 send_files la phase = 2 envoyer des fichiers terminé total: 0 résultats = 0 = hash_hits false_alarms = 0 = 0 données recv_files la phase = 2 recv_files terminé generate_files phase = 3 generate_files terminé –

+0

envoyé 4 865 octets reçus 59 368 octets 128 466,00 octets/s la taille totale est 345,102,247,470 accélération est 5,372,662.77 [expéditeur] _exit_cleanup (code = 0, fichier = main.c, ligne = 1183): sur le point d'appeler exit (0) Toujours, sur le qnap le répertoire à partir duquel les fichiers existent mais est vide. –

+0

Par défaut, rsync utilise un algorithme de "vérification rapide" où il ne compare que la taille du fichier et l'heure de la dernière modification pour décider si un fichier a changé. Vous pouvez essayer d'exécuter rsync avec l'option '-c' afin de calculer et de comparer une somme de contrôle pour décider quel fichier a changé. Cela va courir plus lentement évidemment. –