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 :

test de connectivité d'un host avec fping


Sujet :

Shell et commandes GNU

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre très actif
    Femme Profil pro
    Étudiant
    Inscrit en
    Août 2012
    Messages
    324
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Août 2012
    Messages : 324
    Par défaut test de connectivité d'un host avec fping
    Bonjour tout le monde,
    j'ai écrit un script qui test la connectivité d'une adresse ip et retourne "reachable" ou "unreachable". J'ai choisi de travailler avec l'utilitaire fping car c'est plus facile de traiter son résultat (il ne retourne qu'une seule ligne contrairement à ping).
    voila mon script

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    state=""
    while read line
    do
       fping $line | cut -d" " -f3 > state
       if [ "$state" == "alive" ]
       then echo "Reachable" >> test
       elif [ "$state" == "unreachable" ]
       then echo "Unreachable" >> test
       fi
    done < adresse
    adresse est un fichier texte qui contient des adresse IP et test devraient contenir l'état de chaque adresse.

    j'ai deux probleme:
    1- le fichier test n'est pas crée, j'ai à la place un fichier state (pourtant c'est une variable est non u fichier)
    2- state contient une seule ligne, pourant le fichier Adresse contient une dizaine de lignes

    SVP comment pourrais je résoudre cela
    merci

  2. #2
    Expert confirmé Avatar de frp31
    Homme Profil pro
    Ingénieur systèmes et réseaux
    Inscrit en
    Juillet 2006
    Messages
    5 196
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Ingénieur systèmes et réseaux
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Juillet 2006
    Messages : 5 196
    Par défaut
    Citation Envoyé par supcomingenieur Voir le message
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
     
    state=""
    while read line
    do
       fping $line | cut -d" " -f3 > state # ça n'est pas une définition de variable ça !
       if [ "$state" == "alive" ]
       then echo "Reachable" >> test
       elif [ "$state" == "unreachable" ]
       then echo "Unreachable" >> test
       fi
    done < adresse
    j'ai deux probleme:
    1- le fichier test n'est pas crée, j'ai à la place un fichier state (pourtant c'est une variable est non u fichier)
    non c'est ce que fait ton code c'est pas un problème
    la condition n'existe pas donc le fichier n'est jamais crée
    2- state contient une seule ligne, pourant le fichier Adresse contient une dizaine de lignes
    normal puisque tu rediriges ton fping dans un fichier nomé state

    bref ton code doit changer vers ça :
    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
     
    # manque les entêtes de script
    > test # pour épurer le fichier avant l'iteration suivante du script
    state=""
    while read line
    do
       state=$(fping $line | cut -d" " -f3) # ça ça charge le résultat d'une commande dans une variable
       if [ "$state" == "alive" ]
       then 
             echo "Reachable" >> test
       elif [ "$state" == "unreachable" ]
       then 
             echo "Unreachable" >> test
       fi
       # ne pas tester l’invalidité de la variable c'est pas propre mais bon...
    done < adresse
    # manque un contrôle de l'état de sortie du script
    ça devrait t'aider à finir ton script

  3. #3
    Membre très actif
    Femme Profil pro
    Étudiant
    Inscrit en
    Août 2012
    Messages
    324
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Août 2012
    Messages : 324
    Par défaut
    merci beaucoup pour la réponse, le code compile mais le probleme est que l'affichage se fait à l'écran et non pas dans le fichier test, ce dernier reste vide. y'a t-il un probleme avec la redirrection ">>"???

  4. #4
    Membre très actif
    Femme Profil pro
    Étudiant
    Inscrit en
    Août 2012
    Messages
    324
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Août 2012
    Messages : 324
    Par défaut
    Au fait j'ai trouvé le probleme, il fallait initialiser charger la variable state:
    state=$( fping....
    ça marche parfaitement maintenant, si ce n'est que c'est un peu lent

  5. #5
    Expert confirmé Avatar de frp31
    Homme Profil pro
    Ingénieur systèmes et réseaux
    Inscrit en
    Juillet 2006
    Messages
    5 196
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Ingénieur systèmes et réseaux
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Juillet 2006
    Messages : 5 196
    Par défaut
    Citation Envoyé par supcomingenieur Voir le message
    Au fait j'ai trouvé le probleme, il fallait initialiser charger la variable state:
    state=$( fping....
    ça marche parfaitement maintenant, si ce n'est que c'est un peu lent
    c'est pas plus lent, ça marche ...

    c'est là toute la nuance.

Discussions similaires

  1. Virtual Host avec apache
    Par yashiro dans le forum Apache
    Réponses: 1
    Dernier message: 05/11/2008, 14h25
  2. Controle d'accés host avec ldap
    Par schograni dans le forum Réseau
    Réponses: 0
    Dernier message: 29/07/2008, 16h18
  3. tests sur l'existence de fichier avec wildcards
    Par kheper dans le forum Shell et commandes GNU
    Réponses: 4
    Dernier message: 16/08/2007, 18h55
  4. [MySQL] [débutante] test sur le mot de passe avec smd5
    Par Lyna31 dans le forum PHP & Base de données
    Réponses: 8
    Dernier message: 06/03/2007, 17h04
  5. [tomcat]comment cree un "Virtual Host" avec tomcat
    Par nouaman dans le forum Tomcat et TomEE
    Réponses: 17
    Dernier message: 04/06/2004, 22h51

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