Contenu | Rechercher | Menus

Annonce

Si vous avez des soucis pour rester connecté, déconnectez-vous puis reconnectez-vous depuis ce lien en cochant la case
Me connecter automatiquement lors de mes prochaines visites.

À propos de l'équipe du forum.

#1 Le 13/03/2011, à 10:16

vivi___

Commande du ou similaire

Bonjour,

Après avoir copier des données, j'aime bien verifier que tout c'est bien déroulé.

Pour cela je fais une petite verification avec la commande du pour comparer la quantité de données originale et copiée.

Or il se trouve que quelque fois la commande du ne donne pas le même résultat...
Est-ce que les données ont été mal recopiée ou le fait qu'il s'agit d'un système de fichier différent pour les 2 exemplaire?
Dans ce cas, comment effectuer la verification?

Hors ligne

#2 Le 13/03/2011, à 14:34

FRUiT

Re : Commande du ou similaire

ou le fait qu'il s'agit d'un système de fichier différent pour les 2 exemplaire?

C'est bien ça.

Chez moi il arrive même que du « échoue » ponctuellement et me renvoie une taille de 0ko...

Dernière modification par FRUiT (Le 13/03/2011, à 14:35)


Neon Suite by FRUiT (kde4.6) [url]http://[Merci de relire les règles]/yzm7cee[/url]
"Pour la carotte, le lapin est la plus parfaite incarnation du mal" (R. Sheckley)
clean

Hors ligne

#3 Le 13/03/2011, à 14:52

ehmicky

Re : Commande du ou similaire

Si c'est un système de fichier, tu peux avoir des résultats différents. Par exemple la taille des fichiers non-réguliers peut varier : par exemple les répertoires font 4Ko sur ext3, 64Ko sur FAT32, ... J'imagine aussi que les questions de taille apparente/taille allouée peuvent varier aussi ?
Sinon, si ton but est de vérifier l'intégrité, pourquoi ne pas utiliser des outils prévus pour, comme un checksum récursif ou un :

diff -r DIR1 DIR2

Dernière modification par ehmicky (Le 13/03/2011, à 14:53)


Stego++, bibliothèque libre de stéganographie (avec cryptographie), à venir !
Besoin de votre aide :
Stats sur les compilateurs C++ les plus utilisés
Comment utiliser les archetypes C++ ?

Hors ligne

#4 Le 13/03/2011, à 14:53

johndo

Re : Commande du ou similaire

Tu peux vérifier en calculant un checksum qui normalement est indépendant du FS

Hors ligne

#5 Le 13/03/2011, à 15:12

vivi___

Re : Commande du ou similaire

johndo a écrit :

Tu peux vérifier en calculant un checksum qui normalement est indépendant du FS

Intéressant, comment calculer ce checksum?

Est-ce que la commande diff est adapté pour des quantités de données très grandes, plusieurs Go? Je veux dire du point de vue du temps de vérification?

Merci

Dernière modification par vivi___ (Le 13/03/2011, à 15:17)

Hors ligne

#6 Le 13/03/2011, à 15:34

johndo

Re : Commande du ou similaire

vivi___ a écrit :

Intéressant, comment calculer ce checksum?

voilà qui devrait faire l'affaire :

diff <(find dossier_1 -type f -exec md5sum {} \;|sed '@dossier_1@@'|sort) <(find dossier_2 -type f -exec md5sum {} \;|sed '@dossier_2@@'|sort)

Hors ligne

#7 Le 13/03/2011, à 15:52

aduxas

Re : Commande du ou similaire

Quelle était ta commande de copie?  As-tu copié des liens symboliques?

Hors ligne

#8 Le 13/03/2011, à 16:02

vivi___

Re : Commande du ou similaire

aduxas a écrit :

Quelle était ta commande de copie?  As-tu copié des liens symboliques?

C'est une copie toute bête, copier, coller de près de 200Go. La copie c'est un peu long, j'aimerai bien que la vérification soit plus courte.
la commande diff prend beaucoup de temps j'ai l'impression

Hors ligne

#9 Le 13/03/2011, à 16:15

aduxas

Re : Commande du ou similaire

J'imagine qu'un checksum de 200 Go, ça prend du temps.  Je suppose qu'il faut lire tout le bazar pour faire un checksum.  Tu pourrais comparer le résultat de 'find -printf' où l'impression est limitée à la taille.

Dernière modification par aduxas (Le 13/03/2011, à 16:15)

Hors ligne

#10 Le 13/03/2011, à 16:27

aduxas

Re : Commande du ou similaire

En fait, en reprenant l'idée de johndo:

diff <(ls -Rs dossier_1 | sed 's/dossier_1//') <(ls -Rs dossier_2 | sed 's/dossier_2//')

EDIT: filtre sed rajouté

Dernière modification par aduxas (Le 13/03/2011, à 16:32)

Hors ligne

#11 Le 13/03/2011, à 16:58

ehmicky

Re : Commande du ou similaire

Ca prend 35 secondes sur mon téléphone de comparer /home et / ainsi, et 0.016s avec diff -r.
diff -r est simple et ne te donnera pas de surprise en cas de présence de symlinks, named pipes, etc. contrairement à find -type f, et simplement donnera le résultat juste.
Si vraiment les performances sont si cruciales, regarde sur le net les différents outils faisant des checksums récursifs, ce qui sera plus performant et simple que des longues chaines de pipes.


Stego++, bibliothèque libre de stéganographie (avec cryptographie), à venir !
Besoin de votre aide :
Stats sur les compilateurs C++ les plus utilisés
Comment utiliser les archetypes C++ ?

Hors ligne

#12 Le 13/03/2011, à 18:09

aduxas

Re : Commande du ou similaire

Entièrement d'accord, ehmicky, 'diff -r' est le bon outil ici,

Hors ligne