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 :

Mauvais retour de commande


Sujet :

Shell et commandes GNU

  1. #1
    Membre habitué
    Homme Profil pro
    Développeur backend (python)
    Inscrit en
    mai 2014
    Messages
    74
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 29
    Localisation : France, Vendée (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur backend (python)

    Informations forums :
    Inscription : mai 2014
    Messages : 74
    Points : 135
    Points
    135
    Par défaut Mauvais retour de commande
    Bonjour,

    Tout d'abord, excusez moi pour le tire qui ne veux pas dire grand chose, je ne savais pas comment expliqué succinctement mon soucis.

    J'ai écris un script shell qui va faire appelle à deux commande, openssl et ncat, je doit les appeler pour chaque ligne présente dans mon fichier 'liste_site.txt'. J'ai essayer de tester avec une ligne qui fonctionnera et une autre ou ncat se verra refuser la connexion.

    Le soucis que j'ai, c'est que si ma première ligne est la bonne (Celle qui peut se connecter), mes vérifications me retournes une erreur sur les deux testes, la bonne lignes et la mauvaise.
    Si je place la mauvaise ligne en premier, la bonne en seconde, j'ai un retour OK pour les deux lignes.

    Je n'arrive pas à voir d'ou viens le soucis, si quelqu’un pouvait m'aider, je lui en serait grandement reconnaissant.

    Voici le contenu mon fichier liste_site.txt (La bonne ligne étant celle contenant '192.168.1.46', donc en premier ici):

    192.168.1.46:gh&L4rSjd(oIXa2]YIxN6]EAoF[v"kyPC}V}k3mF#iR/r3_(1C
    192.168.1.43:AAqf6HD(}[_MVfPfh3eAGtEQTL0HO5wa0[eER58Aq]sJ_dg*2/
    Et voici 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
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    #!/usr/bin/bash
     
    sudo tar -cz -P -f /scriptshinken/conf.tar /usr/local/check_mk/var/lib/precompiled;
    sudo md5sum /scriptshinken/conf.tar > /scriptshinken/conf.hash;
    sudo tar -c -P -f /scriptshinken/confhash.tar /scriptshinken/conf.tar /scriptshinken/conf.hash;
     
    while read line; do
        ip=`echo $line| cut -d ":" -f1`;
        secret=`echo $line | cut -d ":" -f2`;
    done < /scriptshinken/liste_site.txt
     
    ssl_out=$( sudo openssl enc -des -k $secret -e -in /scriptshinken/confhash.tar -out  /scriptshinken/confhashcrypt.tar 2>&1 )
    ssl_rc=$?
     
    ncat_out=$( sudo ncat --send-only --ssl $ip 7650 < /scriptshinken/confhashcrypt.tar 2>&1 )
    ncat_rc=$?
    while read line; do
        if [[ $ssl_rc == 0 ]];then
            echo "SSL : OK!"
            retour=0
        else
            echo "SSL : $ssl_out!"
            retour=1
    #       break
        fi
     
     
        if [[ $ncat_rc == 0 ]];then
            echo "NCAT : OK!"
            retour=0
        else
            echo "NCAT : FAIL :  $ncat_out!"
            retour=1
    #       break
        fi
    #2>/dev/null;
    done < /scriptshinken/liste_site.txt
     
    sudo rm /scriptshinken/conf.tar 2>/dev/null;
    sudo rm /scriptshinken/conf.hash 2>/dev/null;
    sudo rm /scriptshinken/confhash.tar 2>/dev/null;
    sudo rm /scriptshinken/confhashcrypt.tar 2>/dev/null;
     
    echo "Return : $retour"
    exit $retour;

    Et enfin les retours d'erreur:

    Avec la bonne ligne en premier :

    SSL : OK!
    NCAT : FAIL : Ncat: Connection refused.!
    SSL : OK!
    NCAT : FAIL : Ncat: Connection refused.!
    Return : 1
    Avec la bonne ligne en second :

    SSL : OK!
    NCAT : OK!
    SSL : OK!
    NCAT : OK!
    Return : 0

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

    Informations forums :
    Inscription : février 2008
    Messages : 6 619
    Points : 17 153
    Points
    17 153
    Par défaut
    Bonjour,

    trop de sudo dans le script, le script entier devrait être exécuté avec sudo : sudo ./script

    ncat n'est exécuté qu'une seule fois en dehors de la boucle (c'est à dire, sans données de connexion), donc la boucle tourne avec la même erreur
    .
    N'oubliez pas de consulter les cours shell, la FAQ, et les pages man.

  3. #3
    Membre habitué
    Homme Profil pro
    Développeur backend (python)
    Inscrit en
    mai 2014
    Messages
    74
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 29
    Localisation : France, Vendée (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur backend (python)

    Informations forums :
    Inscription : mai 2014
    Messages : 74
    Points : 135
    Points
    135
    Par défaut
    Oui pour les sudos j'avais pas fait gaffe, mais il est appelé avec sudo en plus --"

    Par contre je en comprend pas le fait que ncat ne s’exécute qu'une fois, le bout de code qui appel puis vérifie les commandes je l'ai trouver sur internet, du coup je ne comprend pas totalement son fonctionnement, serait-il possible d'avoir un éclaircissement?

  4. #4
    Expert confirmé
    Homme Profil pro
    Développeur informatique en retraite
    Inscrit en
    avril 2008
    Messages
    1 957
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Côtes d'Armor (Bretagne)

    Informations professionnelles :
    Activité : Développeur informatique en retraite

    Informations forums :
    Inscription : avril 2008
    Messages : 1 957
    Points : 5 384
    Points
    5 384
    Par défaut
    Citation Envoyé par Takka Voir le message
    Par contre je en comprend pas le fait que ncat ne s’exécute qu'une fois,
    Je n'ai pas tout compris, mais la boucle me paraît... limitée:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    while read line; do
        ip=`echo $line| cut -d ":" -f1`;
        secret=`echo $line | cut -d ":" -f2`;
    done < /scriptshinken/liste_site.txt
    Le while boucle sur les lignes du fichier liste_site.txt et, à la sortie de la boucle, ip contient l'ip de la dernière ligne!

    Donc, tu ne boucles pas sur le ncat!

    Il faudrait que le ncat soit à l'intérieur d'une boucle...

  5. #5
    Membre habitué
    Homme Profil pro
    Développeur backend (python)
    Inscrit en
    mai 2014
    Messages
    74
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 29
    Localisation : France, Vendée (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur backend (python)

    Informations forums :
    Inscription : mai 2014
    Messages : 74
    Points : 135
    Points
    135
    Par défaut
    AH oui en effet, je n'avais pas fait attention, il faudra que je le mette dans des variables différentes. Merci bien, ça devrait fonctionner maintenant.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. BCP -Mauvais retour à la ligne
    Par Toutatis dans le forum Outils
    Réponses: 1
    Dernier message: 06/03/2008, 11h53
  2. code retour première commande dans un pipe
    Par ArnaudD dans le forum Shell et commandes GNU
    Réponses: 4
    Dernier message: 26/09/2007, 10h30
  3. Probleme: mauvais retour de fonction
    Par kururin dans le forum Langage
    Réponses: 12
    Dernier message: 22/01/2007, 22h20
  4. Réponses: 2
    Dernier message: 30/09/2005, 15h48

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