Rechercher : dans
Par :

Exploiter fichier texte

Dernière réponse le 14 oct 2009 à 12:26:41 vindicien, le 14 oct 2009 à 12:04:47 
 Signaler ce message aux modérateurs

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

Meilleures réponses pour « Exploiter fichier texte » dans :
[MS-Dos] Ecrire dans un fichier texte en batch Voir Pour écrire dans un fichier texte, il suffit d'utiliser une redirection ">" : echo texte_à_ecrire > fichier_de_sortie.txt Pour écrire à la fin d'un texte existant (concaténation) : echo "écriture a la fin du fichier ">>...
MySQL - Chargement d'un fichier texte dans une table VoirPour charger une fichier texte défini comme suit : $ tail /home/user1/test.txt 'nom1',1,9 'nom2',2,3 'nom3',3,54 'nom4',4,2 'nom5',5,9 Dans une table définie comme suit : CREATE TABLE chargertest ( ...
Fichier TXT VoirFormat TXT Un fichier TXT est un fichier texte, c'est-à-dire un simple fichier contenant du texte au format ASCII. Pour ouvrir ou modifier un tel fichier, il suffit d'utiliser le bloc-notes ou un éditeur de texte traditionnel.
Extensions de fichiers VoirIntroduction aux fichiers Un fichier est une suite d'informations binaires, c'est-à-dire une suite de 0 et de 1. Ce fichier peut être stocké pour garder une trace de ces informations. Un fichier texte est un fichier composé de caractères stockés...
Ecrire un programme en assembleur VoirLa compilation du programme Le programme doit être saisi dans un fichier texte non formaté (c'est-à-dire sans caractères en gras, souligné, avec des polices de caractères de différentes tailles, ...) appelé fichier source. En effet,...

1

jipicy, le 14 oct 2009 à 12:18:28
  • +1

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]$   
;-))
$ man woman
Il n'y a pas de page de manuel pour woman.

Répondre à jipicy

3

 vindicien, le 14 oct 2009 à 12:26:41

Waouh énorme !!!
Bien joué ça me simplifie encore plus la vie !!!!!

Merci beaucoup !!

Vind'

Répondre à vindicien

2

dubcek, le 14 oct 2009 à 12:23:10

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

Répondre à dubcek