Script ping

Fermé
chris - 23 sept. 2008 à 17:02
 chris - 24 sept. 2008 à 09:13
Bonjour,
j'ai une liste de nom de domaines, et j'aimerai ecrire un script qui me ping chacun de ces noms de domaines et m'envoi le resultat (nom de domaine + reponse du ping) dans un fichier.
Quelqu'un à une idée ?
MErci

5 réponses

asevere Messages postés 13084 Date d'inscription lundi 28 janvier 2002 Statut Webmaster Dernière intervention 3 février 2022 426
23 sept. 2008 à 17:11
Bonjour,

As-tu déjà un bout de script ?
As-tu regardé les pages man de ping, et celles de bash ?

C'est plus efficace quand une personne arrive avec son script et demande un couop de main pour l'améliorer, ou le corriger que de faire ce script à la place de la personne ;-)

++
0
Oui j'ai un debut de script, il ne me manque pas gd chose je pense, simplement le retour negatif au ping que je recupere en console (et pas dans mon fichier result.log)

#more /tmp/pingall.sh
#!/bin/sh


for NDD in $(cat /tmp/listprov); do
echo "$NDD" >> /tmp/result.log; ping -c 1 www.$NDD >> /tmp/result.log
done
0
asevere Messages postés 13084 Date d'inscription lundi 28 janvier 2002 Statut Webmaster Dernière intervention 3 février 2022 426
23 sept. 2008 à 17:38
Ok

Alors, il faut modifier ton echo comme suit:
echo "$NDD" >> /tmp/result.log; ping -c 1 www.$NDD >> /tmp/result.log  2>&1


Le 2>&1 redirige le descripteur 2 (erreur standard) vers le descripteur 1 (sortie standard)
Comme 1 à été précédemment redirigé vers /tmp/result.log , tout arrivera dedans.

Mais tu peux avoir un resultat plus lisible:
echo -n $NDD":" && ping -c1 www.$NDD >/dev/null 2>&1 && echo OK || echo ERREUR >> /tmp/result.log
Dans ce cas, tu auras dans result.log du type:
host1:OK
host2:OK
host3:ERREUR
host4:OK
...


A plus
0
Ca m'interesse beaucoup cette solution (beaucoup + lisible en effet), mais ça ne marche pas, j'ai tous les NDD qui s'affichent à l'ecran, et mon fichier result.log ne contient que des lignes ERREUR
0
asevere Messages postés 13084 Date d'inscription lundi 28 janvier 2002 Statut Webmaster Dernière intervention 3 février 2022 426
24 sept. 2008 à 09:00
C'est ma faute:

La commande exacte est celle là:
(echo -n $NDD":" && ping -c1 www.$NDD >/dev/null 2>&1 && echo OK || echo ERREUR )>> /tmp/result.log
Les parenthèses permettent de rediriger les sortie de l'ensemble des commandes en non juste celles du echo ERREUR

A plus
0
en fait la réponse est toujours vue en ERREUR, je ne vois pas pourquoi
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
En effet c'est parfait comme ça, merci beaucoup !
0