Exploiter fichier texte

Résolu
vindicien Messages postés 136 Statut Membre -  
vindicien Messages postés 136 Statut Membre -
Bonjour,

Je PING plusieurs machines à l'aide d'un script.
J'écris les résultats de ces PING dans un fichier texte :

PING XXX.XXX.XXX.XXX (XXX.XXX.XXX.XXX) 56(84) bytes of data.
64 bytes from XXX.XXX.XXX.XXX: icmp_seq=1 ttl=247 time=27.4 ms

--- XXX.XXX.XXX.XXX ping statistics ---
1 packets transmitted, 1 received, 0% packet loss, time 0ms
rtt min/avg/max/mdev = 27.443/27.443/27.443/0.000 ms
#NEXT
PING YYY.YYY.YYY.YYY (YYY.YYY.YYY.YYY) 56(84) bytes of data.
64 bytes from YYY.YYY.YYY.YYY: icmp_seq=1 ttl=247 time=34.6 ms

--- YYY.YYY.YYY.YYY ping statistics ---
1 packets transmitted, 1 received, 0% packet loss, time 0ms
rtt min/avg/max/mdev = 34.697/34.697/34.697/0.000 ms
#NEXT
PING ZZZ.ZZZ.ZZZ.ZZZ (ZZZ.ZZZ.ZZZ.ZZZ) 56(84) bytes of data.
64 bytes from ZZZ.ZZZ.ZZZ.ZZZ: icmp_seq=1 ttl=247 time=231 ms

--- ZZZ.ZZZ.ZZZ.ZZZ ping statistics ---
1 packets transmitted, 1 received, 0% packet loss, time 0ms
rtt min/avg/max/mdev = 231.006/231.006/231.006/0.000 ms
#NEXT
etc.

Mon but est de créer un script qui parcourra ce fichier et me signalera si le ping fonctionne ou non.
Autrement dit, dès qu'il sera écrit "100% packet loss", inscrire l'adresse située sur la ligne du dessus dans un autre fichier texte...

Auriez vous une idée ?
Je saurais récupérer la valeur du pourcentage mais surtout comment récupérer l'adresse IP qui est sur la ligne du dessus ???

Merci,

Vind'
Configuration: Windows XP
Firefox 3.5.3

2 réponses

  1. jipicy Messages postés 40842 Date d'inscription   Statut Modérateur Dernière intervention   4 898
     
    Salut,

    Plutôt tester le code retour ($?), non ?

    [tmpfs]$ cat foo.sh
    #! /bin/sh
    
    #set -xv
    
    ping -c 1 -q $1 >/dev/null
    
    if [ "$?" != "0" ]
    then echo "Ping sur $1 pas bon"
    fi
    
    [tmpfs]$ ./foo.sh 192.168.10.20     # ma passerelle
    
    [tmpfs]$ ./foo.sh 192.168.10.21     # machine inexistante
    Ping sur 192.168.10.21 pas bon
    
    [tmpfs]$ ./foo.sh commentcamarche.net# CCM 
    
    [tmpfs]$ ./foo.sh commentcamarche.en# CCM inexistant
    ping: unknown host commentcamarche.en
    Ping sur commentcamarche.en pas bon
    
    [tmpfs]$ ./foo.sh 192.168.10.199     # ma propre machine
    
    [tmpfs]$ ./foo.sh 192.168.10.190     # machine inexistante
    Ping sur 192.168.10.190 pas bon
    
    [tmpfs]$   
    ;-))
    1
    1. vindicien Messages postés 136 Statut Membre 33
       
      Waouh énorme !!!
      Bien joué ça me simplifie encore plus la vie !!!!!

      Merci beaucoup !!

      Vind'
      0
  2. dubcek Messages postés 18627 Date d'inscription   Statut Contributeur Dernière intervention   5 660
     
    hello
    j'ai mnis un 100% pour tester
    $ awk '/^---/ {ip=$2} ; /100%/ { print ip, $6, "packet loss"}' < fichier
    ZZZ.ZZZ.ZZZ.ZZZ 100% packet loss

    il est aussi possible de tester le retour d'erreur de ping
    ping $IP > /dev/null 2>&1
    if [ $? -ne 0 ] ; then echo "$IP ne répond pas" ; fi
    
    0