IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Shell et commandes GNU Discussion :

Script de comparaison de SHA256 avec un fichier


Sujet :

Shell et commandes GNU

  1. #1
    Membre du Club
    Inscrit en
    Mai 2006
    Messages
    105
    Détails du profil
    Informations forums :
    Inscription : Mai 2006
    Messages : 105
    Points : 40
    Points
    40
    Par défaut Script de comparaison de SHA256 avec un fichier
    Bonjour,

    J'ai le script ci-dessous qui calcul le SHA256 des fichiers PDF présents dans un dossier et le compare à celui contenu dans un fichier CSV (ce fichier contient entre autre le nom du fichier ainsi que son SHA256).
    Je ne comprends pas pourquoi systématiquement le script me retourne que le SHA256 n'est pas identique alors que si. De plus, le fichier semble lu correctement. Pouvez-vous m'aider à trouver se qui ne va pas dans mon script.

    Mon script :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
     
    #!/bin/bash
     
    BASEDIR=/Olivier/test
     
    # Contrôle des SUM SHA256 des fichiers PDF d'après le CSV
          for fichierPDF in $(ls $BASEDIR/en_traitement/*.pdf)
          do
            pdffilename=`basename $fichierPDF`
            pdffilesha256=`sha256sum $fichierPDF | head -c 64 | tr [a-z] [A-Z]`
            # Recherche et comparaison du SHA du PDF encour par rapport au fichier CSV
            SHA256CSV=`awk -F";" -v pdffilename=$pdffilename '
                          $1 == pdffilename {
                          print $13
                          found = 1
                       }
                       END{ if ( ! found ) print "PAS TROUVE"}' $BASEDIR/en_traitement/index.csv`
            if [ "$SHA256CSV" = "$pdffilesha256" ]
            then
              echo 'C COOL ON PEUT Y ALLER'
            else
              echo 'PAS BON PROBLEME AVEC AU MOINS UN SHA256'
              echo $pdffilename
              echo $pdffilesha256
              echo $SHA256CSV
            fi
          done
    Exemple de contenu du fichier avec lequel le SHA256 est comparé :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    FLX-SIC_20120902_STK_00002_00001_00001.pdf;A;B;C;D;E;F;G;H;I;;;00881C33C7524A2FBB2EC08925CA3CDDBE359ADE3E48DB75E60AD3CD24C6F20A
    FLX-SIC_20120902_STK_00002_00001_00002.pdf;W;C;S;;K;Q;F;;P;;;676112D9F5AFC9F17E9118FA218928F9505DBDF350AFCB9B7B4EC4149AE54A1B
    Résultat que le script me retourne actuellement :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
    root@node:/Olivier/test/Scripts# sh ScriptX.sh
    PAS BON PROBLEME AVEC AU MOINS UN SHA256
    FLX-SIC_20120902_STK_00002_00001_00001.pdf
    00881C33C7524A2FBB2EC08925CA3CDDBE359ADE3E48DB75E60AD3CD24C6F20A
    00881C33C7524A2FBB2EC08925CA3CDDBE359ADE3E48DB75E60AD3CD24C6F20A
    PAS BON PROBLEME AVEC AU MOINS UN SHA256
    FLX-SIC_20120902_STK_00002_00001_00002.pdf
    676112D9F5AFC9F17E9118FA218928F9505DBDF350AFCB9B7B4EC4149AE54A1B
    676112D9F5AFC9F17E9118FA218928F9505DBDF350AFCB9B7B4EC4149AE54A1B
    Merci,

  2. #2
    Modérateur
    Avatar de N_BaH
    Profil pro
    Inscrit en
    Février 2008
    Messages
    7 552
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2008
    Messages : 7 552
    Points : 19 392
    Points
    19 392
    Par défaut
    Bonjour,

    j'aurais pris le problème par l'autre bout : lire le fichier csv, et tester les fichiers (voir : Comment lire un fichier)
    ...
    ?

    parce qu'ON N'UTILISE PAS ls DANS UN SCRIPT !!!
    et parce qu'on ne fait pas for i in $(commande); do..., à moins d'être sûr de vouloir itérer sur chaque mot retourné par la commande.
    .
    N'oubliez pas de consulter les cours shell, la FAQ, et les pages man.

  3. #3
    Expert éminent sénior
    Avatar de Sve@r
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Février 2006
    Messages
    12 690
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Oise (Picardie)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Février 2006
    Messages : 12 690
    Points : 30 985
    Points
    30 985
    Billets dans le blog
    1
    Par défaut
    Salut

    Je présume que ta façon (assez complexe) de rechercher la signature associée dans le csv fonctionne. Toutefois t'as le grep |cut qui fait ça au-moins aussi bien et en une ligne => SHA256CSV=`grep $pdffilename $BASEDIR/en_traitement/index.csv |cut -d\; -f13`...

    Mis à part ça, chez-moi ton script fonctionne (recopié tel quel même avec son indentation anarchique)

    PS: on ne travaille jamais sous root. C'est faire preuve de fainéantise en utilisant un compte qui a tout pouvoir et qui, forcément, n'a jamais de problème de quoi que ce soit. Et en plus si tu lances par accident une saleté ou même si tu fais une erreur t'as plus qu'à réinstaller ton système...
    Mon Tutoriel sur la programmation «Python»
    Mon Tutoriel sur la programmation «Shell»
    Sinon il y en a pleins d'autres. N'oubliez pas non plus les différentes faq disponibles sur ce site
    Et on poste ses codes entre balises [code] et [/code]

Discussions similaires

  1. Script PHP pour remplir mysql avec un fichier Excel
    Par Xeuch dans le forum Langage
    Réponses: 3
    Dernier message: 13/02/2013, 13h17
  2. Réponses: 1
    Dernier message: 16/11/2009, 19h32
  3. Comparaison d'un fichier local avec un fichier distant
    Par WerKa dans le forum Général Java
    Réponses: 2
    Dernier message: 03/06/2008, 17h50
  4. script de comparaison de fichiers
    Par olemoine dans le forum Langage
    Réponses: 2
    Dernier message: 07/02/2008, 11h12
  5. Script de comparaison 2 fichiers
    Par kalimerou dans le forum Linux
    Réponses: 4
    Dernier message: 02/02/2007, 14h11

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo