Exploiter fichier texte

Résolu/Fermé
vindicien Messages postés 131 Date d'inscription vendredi 6 mars 2009 Statut Membre Dernière intervention 22 février 2011 - 14 oct. 2009 à 12:04
vindicien Messages postés 131 Date d'inscription vendredi 6 mars 2009 Statut Membre Dernière intervention 22 février 2011 - 14 oct. 2009 à 12:26
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'
A voir également:

2 réponses

jipicy Messages postés 40842 Date d'inscription jeudi 28 août 2003 Statut Modérateur Dernière intervention 10 août 2020 4 896
14 oct. 2009 à 12:18
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
vindicien Messages postés 131 Date d'inscription vendredi 6 mars 2009 Statut Membre Dernière intervention 22 février 2011 33
14 oct. 2009 à 12:26
Waouh énorme !!!
Bien joué ça me simplifie encore plus la vie !!!!!

Merci beaucoup !!

Vind'
0
dubcek Messages postés 18755 Date d'inscription lundi 15 janvier 2007 Statut Contributeur Dernière intervention 14 novembre 2024 5 621
14 oct. 2009 à 12:23
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