Comment vérifier une sauvegarde de journal hors ligne avec des sommes de contrôle de fichiers
Pour vérifier qu'une copie hors ligne d'un journal numérique correspond à sa source au bit près, créez un manifeste de sommes de contrôle SHA-256 et un inventaire de fichiers à partir de la source voulue, puis vérifiez la sauvegarde par rapport à cette base de référence protégée. Une somme de contrôle concordante confirme l'intégrité exacte des octets des fichiers listés ; elle ne garantit pas que la liste est complète, que les fichiers d'origine étaient corrects ou lisibles, ni qu'une référence non fiable est authentique.
Ce qu'une vérification de somme de contrôle vous apprend
Une somme de contrôle (checksum) est une valeur calculée à partir du contenu d'un fichier. Si le contenu change, la valeur calculée devrait différer. Comparer une sauvegarde à une valeur de référence permet donc d'identifier les altérations survenues pendant la copie ou le stockage. La Digital Preservation Coalition décrit les sommes de contrôle comme un moyen de contrôler le bon transfert et l'intégrité continue des fichiers, tout en insistant sur la comparaison avec une référence réputée correcte ([Fixity and checksums](https://www.dpconline.org/handbook/technical-solutions-and-tools/fixity-and-checksums)).
La référence est essentielle : si vous calculez la référence et la comparaison à partir d'une même copie déjà endommagée, la concordance ne permet pas de savoir ce que contenait le fichier d'origine. Une correspondance ne prouve pas non plus qu'une entrée de journal s'ouvre correctement, que la source était complète ou qui a créé les fichiers. Considérez cette démarche comme une comparaison d'octets portant sur un ensemble de fichiers délibérément choisis.
Choisir et enregistrer l'ensemble source
Identifiez un dossier de journal exporté stable devant être sauvegardé, et terminez toutes les modifications avant d'en calculer les empreintes. Cet exemple s'applique aux fichiers ordinaires, y compris les fichiers cachés ; il ne suit pas les liens symboliques et ne capture pas de manière cohérente une base de données d'application en cours d'exécution. Exportez les éléments liés dans le dossier sélectionné si nécessaire et consultez les instructions d'exportation de l'application. Enregistrez l'inventaire et le manifeste générés en dehors de ce dossier.
Ces exemples nécessitent Bash et GNU findutils/coreutils, comme sous Ubuntu Linux ; ce ne sont pas des commandes pour un terminal macOS ou Windows non modifié. L'exemple utilise des chemins locaux fictifs et de nouveaux noms de fichiers de sortie. Utilisez un répertoire parent existant pour les enregistrements ; choisissez des noms de fichiers inutilisés afin de ne pas écraser les références antérieures. Remplacez-les par les chemins de votre propre ordinateur ; gardez le journal privé et les enregistrements générés localement. Le manuel d'Ubuntu documente la génération avec `sha256sum` et son option `--check` pour vérifier une sortie antérieure ([manuel de sha256sum](https://manpages.ubuntu.com/manpages/noble/man1/sha256sum.1.html)).
```bash ( set -euo pipefail set -C cd "/home/example/Diary" find . -type f -print0 | LC_ALL=C sort -z > "/home/example/diary-inventory.nul" xargs -0 -r sha256sum < "/home/example/diary-inventory.nul" > "/home/example/diary-source.sha256" test -s "/home/example/diary-source.sha256" ) ```
Le sous-shell s'arrête en cas d'échec de changement de répertoire ou de pipeline, refuse d'écraser les fichiers d'enregistrement existants et rejette un manifeste de sommes de contrôle vide. S'il signale une erreur, n'utilisez pas de sorties partielles comme base de référence. L'inventaire utilise des séparateurs NUL afin que les noms de fichiers contenant des sauts de ligne restent distincts. Les deux enregistrements restent en dehors du dossier sélectionné. Vérifiez l'ensemble source par rapport à l'exportation du journal avant de vous y fier ; un manifeste ne peut pas révéler une pièce jointe omise avant sa création.
Protéger la base de référence et copier les fichiers
Stockez le manifeste et l'inventaire dans un emplacement distinct de la source de travail et de la sauvegarde hors ligne. Protégez-les contre les modifications accidentelles et conservez une deuxième copie protégée si possible. Une comparaison de sommes de contrôle n'a de valeur en tant que vérification de référence que si vous avez des raisons de faire confiance à la base de référence et de la préserver. Les directives de préservation considèrent de même les données d'intégrité (fixity) comme des informations enregistrées et utilisées pour l'audit ; la NARA décrit l'enregistrement des empreintes, le suivi des actions sur les fichiers ainsi que la création de manifestes et de journaux dans son programme de préservation numérique ([National Archives digital preservation](https://www.archives.gov/preservation/digital-preservation/about)).
Copiez le dossier de journal sélectionné sur le lecteur de sauvegarde à l'aide de votre méthode habituelle de copie de fichiers. Laissez la sauvegarde déconnectée lorsqu'elle n'est pas en cours de vérification. Les commandes présentées ici n'effectuent pas la copie ; elles vérifient les fichiers déjà copiés. Évitez de modifier, renommer ou réorganiser la sauvegarde avant de la vérifier, car les changements de chemin peuvent empêcher le manifeste de trouver les fichiers attendus.
Vérifier les octets copiés
Montez le lecteur hors ligne et placez-vous dans le dossier du journal copié. Lancez la vérification par rapport au manifeste de référence, en utilisant le même algorithme SHA-256 et les chemins relatifs enregistrés à la source :
```bash ( set -euo pipefail cd "/media/example/DiaryBackup/Diary" sha256sum --check --strict "/home/example/diary-source.sha256" ) ```
Le manifeste stocke des chemins relatifs commençant par `./`, la vérification s'exécute donc depuis le dossier du journal copié. `OK` indique une correspondance pour ce fichier. Les fichiers manquants ou discordants, les lignes de somme de contrôle mal formées et les erreurs de commande nécessitent une vérification ; ne les masquez pas avec `--ignore-missing` et ne présumez pas que quelques lignes `OK` visibles signifient que l'ensemble du test a réussi. Le [manuel d'Ubuntu](https://manpages.ubuntu.com/manpages/noble/man1/sha256sum.1.html) documente ces options.
Cette vérification ne signale pas les fichiers supplémentaires présents sur la sauvegarde qui ne figuraient pas dans le manifeste. Comparez l'inventaire des fichiers de la sauvegarde avec l'inventaire source enregistré lors d'une étape distincte si vous devez détecter des éléments superflus ou un contenu de répertoire inattendu. La conformité de l'inventaire ne peut toujours pas prouver que votre sélection initiale comprenait tous les éléments de journal que vous aviez l'intention de conserver.
Examiner les anomalies sans détruire les preuves
Si un fichier ne correspond pas, notez son chemin et conservez les deux copies inchangées. Confirmez le manifeste prévu et le dossier de travail, puis comparez la source et la sauvegarde séparément. Vérifiez si une modification, un renommage ou une copie incomplète explique l'écart. Préservez la copie non concordante pendant vos recherches ; l'écraser automatiquement supprimerait des preuves.
Les recommandations en matière de préservation numérique préconisent l'utilisation d'une copie saine connue pour remplacer une copie dont l'intégrité a été perdue, ce qui suppose de disposer d'une autre copie fiable ([Digital Preservation Coalition](https://www.dpconline.org/handbook/technical-solutions-and-tools/fixity-and-checksums)). Pour un journal personnel, il s'agit d'une décision à ne prendre qu'après avoir comparé les preuves disponibles. Les sommes de contrôle détectent les différences ; elles ne réparent pas les fichiers et ne choisissent pas la version correcte.
Limites et tenue d'un registre pratique
Conservez un bref historique local indiquant le dossier source, la date de référence, l'algorithme, l'emplacement du manifeste et le résultat de chaque vérification. Pour les vérifications ultérieures, conservez la base de référence établie plutôt que de la recréer à partir de la sauvegarde examinée. Après une modification intentionnelle ou une conversion, documentez la nouvelle version séparément. Poursuivez les vérifications occasionnelles d'ouverture et de restauration : la seule intégrité des octets ne peut pas indiquer si votre journal reste utilisable.
