Forum de LAPLLA.net

Version complète : Contrôle MD5/SHA1/SHA256 de tous les fichiers d'un répertoire
Vous consultez actuellement la version basse qualité d’un document. Voir la version complète avec le bon formatage.
Si comme moi vous êtes parano et aimez bien vérifier que tous les fichiers et dossiers copiés d'un emplacement à un autre correspondent bien octet-par-octet, voici quelques petites commandes très utiles pour calculer et comparer "l'empreinte numérique" des fichiers, à la ligne de commande sous Linux.

1) Tout d'abord se placer dans le répertoire source (remplacer par le chemin correspondant à votre cas).
Code :
cd /mnt/sda1/dossier1

2) Calcul des sommes MD5 de TOUS les fichiers dans le dossier et sous-dossiers, de façon récursive. Les valeurs sont enregistrées dans un fichier texte avec une extension *.md5 sauvegardé dans le répertoire personnel (l'emplacement peut être modifié bien sûr). A la place de md5sum, d'autres algorithmes de hachages présent par défaut sous Linux peuvent aussi être utilisés (par exemple sha1sum et sha256sum pour les sommes SHA1 ou SHA256, à enregistrer dans des fichiers *.sha1 et *.sha256 respectivement).
Code :
find . -type f -print0 | xargs -0 md5sum > ~/checksums.md5

3) Ensuite se placer dans le répertoire cible (remplacer par le chemin correspondant à votre cas).
Code :
cd /mnt/sdb1/dossier2

4) Vérification de toutes les sommes MD5 (ou SHA1 ou SHA256...). Seuls les fichiers manquants ou corrompus seront affichés.
Code :
md5sum -c --quiet ~/checksums.md5

Sources :
http://info.michael-simons.eu/2008/10/25...tory-tree/
https://explainshell.com/explain?cmd=fin...0%20md5sum
https://explainshell.com/explain?cmd=md5...%20--quiet
Copier un répertoire vers de multiples destinations

1) Se placer dans le dossier parent (sinon toute l'arborescence sera copiée) :
Code :
cd /home/epn/dossier_parent
2) Copier le dossier
Code :
tar cf - dossier1 | tee >( cd /home/epn/dossier2 ; tar xf - ) >( cd /home/epn/dossier3 ; tar xf - ) | ( cd /home/epn/dossier4 ; tar xf - )

Alternativement :

1) Se placer dans le dossier (sinon toute l'arborescence sera copiée) :
Code :
cd /home/epn/dossier_parent/dossier1
2) Copier le contenu du dossier
Code :
tar cf - . | tee >( cd /home/epn/dossier2 ; tar xf - ) >( cd /home/epn/dossier3 ; tar xf - ) | ( cd /home/epn/dossier4 ; tar xf - )
Vérification de fichiers par fichier .SFV (listes de sommes de contrôle CRC32) :

Si nécessaire, installer cksfv :
Code :
sudo apt-get install cksfv

  1. Créer un fichier .SFV dans le répertoire HOME (liste tous les fichiers de façon récursive dans le répertoire courant et tous les sous-dossiers)
    Code :
    find . -type f -print0 | xargs -0 cksv > ~/checksums.sfv
  2. Vérifier les fichiers listés dans le répertoire courant, avec un fichier .SFV dans le même répertoire :
    Code :
    cksfv -f checksums.sfv
  3. Vérifier les fichiers d'un autre répertoire, avec un fichier .SFV présent dans le répertoire HOME :
    Code :
    cksfv -f ~/checksums.sfv -C dossier