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 POSIX Discussion :

problème dans mon code


Sujet :

Shell et commandes POSIX

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Mars 2012
    Messages
    2
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Industrie

    Informations forums :
    Inscription : Mars 2012
    Messages : 2
    Par défaut problème dans mon code
    Bonjour la communauté codeur et programmeur et merci d'avance de votre attention

    Mon but est de trouver la valeur des ping des différentes adresses IP composant mon réseau et de calculer la différence entre le ping le plus haut et le plus bas pour chaque ping et de le comparer à un seuil arbitraire que j'ai choisie égale à 0.10 ms

    j'ai donc un fichier IP.txt contenant
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    # Do not remove the following line, or various programs
    # that require network functionality will fail.
    127.0.0.1               localhost.localdomain localhost lux lux.esme.fr
    ::1             localhost6.localdomain6 localhost6
     
    172.16.0.7      ohm.esme.fr
    172.16.0.8      volt.esme.fr
    172.16.0.3      joule.esme.fr
    127.0.0.1       localhost.localdomain
    172.16.0.12     flops.esme.fr
    Mon programme est le suivant :

    Code bash : 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
    46
    47
    48
    #!/bin/sh
     
    #On choisie un seuil au hasard
    seuil=0.10
     
    #On a copier au prealable ce qu'il y a dans le fichier host dans IP.txt
     
    #On va prendre les adresses IP qui nous interesse (bon ici je triche un peut)
     
    IP1=$(cat /home/students/carpentier_b/IP.txt | grep -e "ohm" |
    cut -c 1-10)
     
    IP2=$(cat /home/students/carpentier_b/IP.txt | grep -e "volt" |
    cut -c 1-10)
     
    IP3=$(cat /home/students/carpentier_b/IP.txt | grep -e "joule" |
    cut -c 1-11)
     
    #On va travailler sur le 1er ping
     
    echo '         <alertes ping $IP1>' >>TP4.xml
     
    ping -c 5 -n $IP1 > ping.txt
     
    #On va chercher les valeur qui nous interesse (ping max et ping min)
     
    ping_min=$(cat /home/students/carpentier_b/ping.txt | grep -e "rtt" |
    cut -c 24-28)
     
    ping_max=$(cat /home/students/carpentier_b/ping.txt | grep -e "rtt" |
    cut -c 36-40)
     
    #On calcule la difference entre le max et le min
     
    dif=`echo "$ping_max - $ping_min" | bc`
     
    #On regarde si on a la difference plus grande que le seuil et si oui alerte
     
    if [ $seuil-le $dif ] |bc
            then
            echo 'ping trop haut, verifier votre réseau pour $ IP 1'>>TP4.xml
     
            else
     
            echo 'Tout va bien pour $IP1' >> TP4.xml
    fi
     
    echo '          </alerte ping $IP1>' >>TP4ml


    et pour rajouter lorsqu'on fait la commande ping -c 5 -n $IP1 > ping.txt , voila ce que j'ai dans le fichier ping.txt:

    0.215PING 172.16.0.7 (172.16.0.7) 56(84) bytes of data.
    64 bytes from 172.16.0.7: icmp_seq=1 ttl=64 time=1.46 ms
    64 bytes from 172.16.0.7: icmp_seq=2 ttl=64 time=0.193 ms
    64 bytes from 172.16.0.7: icmp_seq=3 ttl=64 time=0.332 ms
    64 bytes from 172.16.0.7: icmp_seq=4 ttl=64 time=0.223 ms
    64 bytes from 172.16.0.7: icmp_seq=5 ttl=64 time=0.602 m
    --- 172.16.0.7 ping statistics ---
    5 packets transmitted, 5 received, 0% packet loss, time 4000ms
    rtt min/avg/max/mdev = 0.193/0.562/1.464/0.474 ms


    Je ne pense pas qu'il y ai de probleme dans mon code mais lorsque je lance mon programme , voila ce que ça m'affiche:

    Usage: ping [-LRUbdfnqrvVaA] [-c count] [-i interval] [-w deadline]
    [-p pattern] [-s packetsize] [-t ttl] [-I interface or address]
    [-M mtu discovery hint] [-S sndbuf]
    [ -T timestamp option ] [ -Q tos ] [hop1 ...] destination
    (standard_in) 2: parse error

    Je ne comprend pas car lorsque j'avais tester les instructions dans la commande, je n'avais aucune erreur

    Est ce que quelqu'un peut m'aider car la je sèche et je dois rendre mon TP avant 18h

  2. #2
    Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Mars 2012
    Messages
    2
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Industrie

    Informations forums :
    Inscription : Mars 2012
    Messages : 2
    Par défaut
    Bon il est 19h40, mon TP a été rendu mais je cherche quand même à avoir une petite réponse car ça me taraude l'esprit.

    Ca m'a l'air vraiment bête et le pire, c'est que malgré ce petit message d'erreur, le script se déroule bien comme prévue ( paradoxe? ) et que mon envoie dans mon fichier xml de sortie ce fait correctement donc je ne comprend pas d’où peut provenir ce message d'erreur si contrariant lorsque le correcteur va lancer mon script

    Merci d'avance si il y a des courageux pour lire tout mon message

  3. #3
    Modérateur
    Avatar de jlliagre
    Homme Profil pro
    Ingénieur support avancé & développement
    Inscrit en
    Juin 2007
    Messages
    2 695
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Ingénieur support avancé & développement
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2007
    Messages : 2 695
    Par défaut
    Pas testé, mais ça devrait mieux marcher:
    Code bash : 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
    #!/bin/sh
     
    #On choisit un seuil au hasard (en millisecondes)
    seuil=100
     
    #On a copié au préalable ce qu'il y a dans le fichier host dans IP.txt
    #On va prendre les adresses IP qui nous interessent (bon ici je triche un peu)
     
    IP1=$(grep -w ohm /home/students/carpentier_b/IP.txt | awk '{print $1}')
     
    #On va travailler sur le 1er ping
     
    echo " <alerte ping $IP1>" >>TP4.xml
     
    ping -c 5 -n $IP1 > ping.txt
     
    #On va chercher les valeur qui nous interessent (ping max et ping min)
     
    ping_min=$(awk -F "[ /]" '$1 == "rtt" {print $7 * 1000}')
    ping_max=$(awk -F "[ /]" '$1 == "rtt" {print $9 * 1000}')
     
    #On calcule la difference entre le max et le min
    dif=$((ping_max - ping_min))
     
    #Si la différence est plus grande que le seuil, alerte
     
    if [ $dif -ge $seuil ]
    then
      echo "ping trop haut, vérifier votre réseau pour $IP1" >>TP4.xml
    else
      echo "Tout va bien pour $IP1" >> TP4.xml
    fi
     
    echo " </alerte ping $IP1>" >>TP4ml

Discussions similaires

  1. Problème dans mon code
    Par mrbou dans le forum ASP
    Réponses: 15
    Dernier message: 01/10/2008, 14h38
  2. Réponses: 3
    Dernier message: 15/03/2008, 15h15
  3. Problème dans mon code
    Par curro dans le forum Débuter
    Réponses: 14
    Dernier message: 29/08/2007, 01h46
  4. Réponses: 2
    Dernier message: 03/05/2007, 09h00
  5. Réponses: 13
    Dernier message: 17/10/2006, 15h35

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