J'ai remarqué que le message d'origine est assez ancien, cependant, je pense que ces informations peuvent toujours être utiles à ceux qui recherchent une solution pour vérifier que les fichiers sont copiés correctement. Rsync pourrait être la meilleure méthode pour copier les données et les réponses données dans ce fil sont bonnes, cependant pour ceux qui ne sont pas expérimentés avec Linux, j'essaierai de donner une explication plus détaillée.
Scénario: vous venez de copier des données d'un disque à un autre, avec de nombreux sous-répertoires et fichiers. Vous souhaitez vérifier que toutes les données sont copiées correctement.
Vérifiez d'abord que md5deep est installé en exécutant la commande md5deep -v
.
Si vous obtenez un message disant quelque chose comme «commande introuvable», installez md5deep par apt-get install md5deep
.
Il est supposé que vous ne souhaitez traiter que des fichiers standard. Si vous souhaitez traiter d'autres types de fichiers, reportez-vous à l'indicateur -o dans le manuel md5deep. ( man md5deep
)
Maintenant, vous êtes prêt à partir, et nous supposons que vous avez copié des fichiers de /mnt/orginal
à /mnt/backup
, remplacez-les par tous les répertoires que vous utilisez.
Modifiez d'abord le répertoire source, il s'agit de la source d'origine des fichiers que vous avez copiés ou sauvegardés:
cd /mnt/orginal
Faites ensuite une somme de contrôle de chaque fichier:
md5deep -rel -o f . >> /tmp/checksums.md5
Cette commande a expliqué:
-r
active le mode récursif
-e
affiche un indicateur de progression
-l
active les chemins d'accès relatifs aux fichiers.
-o f
ne fonctionne que sur les fichiers normaux (pas les périphériques bloqués, les canaux nommés, etc.)
.
indique à md5deep de démarrer dans le répertoire courant.
>> /tmp/checksums.md5
indique à md5deep de rediriger toutes les sorties vers /tmp/checksums.md5
.
Remarque: si vous souhaitez remplacer le contenu des versions précédentes de /tmp/checksums.md5
, utilisez >
et non>>
Notez que cette commande peut prendre un certain temps, selon la vitesse io et la taille des données. Vous pouvez expérimenter avec nice et / ou ionice pour augmenter les performances de md5deep, mais cela sort du cadre de cette réponse.
Une fois la création des sommes de contrôle terminée, vous disposez désormais d'un fichier contenant des entrées similaires à:
69c0a826b29c8f40b7ca5e56e53d7f83 ./oldconfig-11-09-2013/etc2/apm/event.d/20hdparm 651f3c7f79a14332f9fa7bb368039210 ./oldconfig-11-09-2013/etc2/apm/event.d/68689-119-2013 /etc2/apm/scripts.d/alsa e9b9131660a8013983bc5e19d7d669eb ./oldconfig-11-09-2013/etc2/ld.so.cache
La première colonne est la somme de contrôle md5 et la deuxième colonne est le chemin d'accès relatif au fichier auquel appartient la somme de contrôle.
Si vous souhaitez voir combien de fichiers existent dans le fichier de somme de contrôle, exécutez la commande:
wc /tmp/checksums.md5 -l
Maintenant, vous voulez vérifier que les données copiées sont correctes:
cd /mnt/backup
md5deep -o f -reX /tmp/checksums.md5 . >> /tmp/compare.result
La seule différence par rapport à la création des sommes de contrôle est -X qui affiche le hachage actuel d'un fichier si l'entrée dans le fichier checksums.md5 ne correspond pas . Ainsi, à la fin du test, s'il /tmp/compare.result
est vide, vous pouvez être sûr que tous les fichiers sont copiés correctement car les sommes de contrôle correspondent.
Notez que seuls les fichiers répertoriés dans le /tmp/checksums.md5
fichier seront vérifiés pour une somme de contrôle correcte, s'il y a des fichiers supplémentaires dans le /mnt/backup
répertoire, md5deep ne vous en informera pas.
Remarques:
Vous n'avez pas nécessairement à utiliser la redirection pour stocker les fichiers de sortie. Reportez-vous au manuel md5deep pour plus d'informations.
Vous devrez peut-être exécuter les commandes md5deep en tant que root, selon les autorisations des fichiers que vous gérez.
sudo apt-get install md5deep
md5deep -rel /path/to/your/directory/ > directory_hash.md5
md5deep -X directory_hash.md5 -r /path/to/your/second/direcotory
Thx beaucoup.