web-dev-qa-db-fra.com

Existe-t-il une commande copy-and-verify dans Ubuntu / Linux?

Je sauvegarde toutes mes photos numériques à plusieurs endroits. J'utilise la commande cp mais, compte tenu de sa valeur personnelle, je commence à me demander s'il existe un moyen plus fiable. Je ne suis pas étranger à Linux, Bash, Perl etc.

La plupart de mes recherches sur Google pour la copie et (verify | valid | check | hash | confirm) retournent rsync. Cependant, pour autant que je sache, rsync utilise uniquement des hachages pour savoir si un fichier doit être mis à jour. Il ne fait pas de comparaison de hachage par la suite.

Pour cette utilisation, en particulier, les fichiers sont binaires et généralement de 8 à 10 Mo. Toutes les recommandations pour les services publics ou des conseils pour des solutions de bricolage seraient grandement appréciées.

23
N13

De man rsync, sous l'option -c:

-c, --checksum: ignorer basé sur la somme de contrôle, pas la durée et la taille du mod

Notez que rsync vérifie toujours que chaque fichier transféré a été correctement reconstruit du côté de la réception en vérifiant la somme de contrôle de l'ensemble du fichier générée lors du transfert du fichier, mais que la vérification automatique après le transfert n'a rien à voir avec cette option. before-the-transfer "Ce fichier doit-il être mis à jour?" vérifier.

19
icyrock.com

Il y a plusieurs années, j'avais les mêmes exigences que vous. La solution que j'ai choisie était d'utiliser ZFS via le pilote ZFS-Fuse sur mon serveur de stockage. Je pensais que mes photos personnelles, mes documents numérisés et d’autres fichiers similaires étaient des éléments auxquels je n’avais accès que de temps en temps. Il peut donc s’agir d’une très longue période, disons un an ou plus, avant que je n’aperçois qu’un fichier a été corrompu une erreur de lecteur ou similaire.

À ce moment-là, toutes les copies de sauvegarde que je possède sont peut-être cette version pourrie du fichier.

ZFS présente un avantage par rapport à RAID-5 dans la mesure où il peut détecter et réparer les erreurs dans les données stockées sur les disques individuels, même si les lecteurs ne signalent pas d'erreur de lecture lors de la lecture des données. Il détectera, via les sommes de contrôle, que l’un des disques a retourné des informations corrompues et utilisera les données de redondance pour réparer ce disque.

En raison de la façon dont le checksum est conçu dans ZFS, j’ai eu l’impression que je pouvais compter sur lui pour stocker les données peu utilisées pendant de longues périodes. Chaque semaine, je lance un "zpool scrub" qui lit et relit toutes les données et vérifie les totaux de contrôle.

ZFS-Fuse a très bien fonctionné pour moi ces dernières années.

Dans un passé lointain, pour un client, j'ai implémenté un système de base de données qui stockait des informations de somme de contrôle sur tous les fichiers stockés dans un répertoire particulier. J'avais ensuite un autre script qui s'exécutait périodiquement et vérifiait le fichier par rapport à la somme de contrôle stockée dans la base de données. Avec cela, nous pourrions rapidement détecter un fichier corrompu et restaurer à partir de sauvegardes. Nous appliquions essentiellement les mêmes types de contrôles que ZFS effectue en interne.

4
Sean Reifschneider

J'ai trouvé cet utilitaire (Linux et Windows) qui fait exactement ce que vous voulez (copie hachée + vérification hachée avec journal): http://sourceforge.net/projects/quickhash/

Le seul inconvénient est qu'il existe uniquement en tant qu'interface graphique (pas d'accès en ligne de commande)

Depuis la version 1.5.0, un dossier source sélectionné peut être haché, puis copié et reconstruit dans un dossier de destination où le contenu est à nouveau haché pour vérification. Depuis la version 1.5.5, les masques de fichiers sélectionnés peuvent également être utilisés (* .doc; * .xls, etc.).

1
2072

https://sourceforge.net/projects/crcsum/ Il étend Linux cp & mv avec la vérification de la somme de contrôle

1
Hans

si vous copiez le fichier localement (comme le laisse supposer votre référence à cpau lieu de scpetc), alors cmples fichiers source et destination ... mais de manière réaliste, si cpn'émet pas une sorte d'erreur (sur le ligne de commande ou dans la valeur de retour d’exécution), il n’ya aucune raison de penser que cela ne fonctionne pas.

si vous souhaitez en effet une sauvegarde légitimement redondante, envisagez une solution distante telle que dropbox .

0
Brad Clawsie