Bonjour suite à un probleme je reposte mon sujet : voilà je vous explique mon souci On me demande de créer un script qui se baserait sur un fichier de parametre pour pinguer une liste de host. Qu'il faut signaler les hosts absents dans un fichier appelé Alarme.log. Et qu'un host est considéré absent uniquement s'il ne repond pas à 3 ping successifs espacés de 5 secondes. Alors j'ai commencé à travailler dessus.
D'abord j'ai crée un fichier de parametre, appelé fichier _param ou j'ai enregistré des noms de sites internet : google.fr yahoo.fr Ensuite j'ai crée ce script :
#!/bin/bash
fichier_param=parametres_script3.txt
cat < $fichier_param | while read host_to_test
do
#echo $host_to_test
ping -c 3 -i 5 $host_to_test >/dev/null 2>&1
if [ "$?" = "0" ]; then
echo "$host_to_test is up"
else
echo "`date "+%d/%m/%y"` $host_to_test is down">>Alarme.log
fi
done
Je pense que ce script pourrait etre amelioré. Je vous remercie d'avance pour vos commentaire et aides eventuelles.
# deja pour commencer ...
Posté par totof2000 . Évalué à 2.
Peut mieux faire ... retente ...
par exemple comme ca:
while read host_to_test
do
#echo $host_to_test
ping -c 3 -i 5 $host_to_test >/dev/null 2>&1
if [ "$?" = "0" ]; then
echo "$host_to_test is up"
else
echo "`date "+%d/%m/%y"` $host_to_test is down">>Alarme.log
fi
done <$fichier_param
Ensuite, tu peux passer le nom du fichier contenant les URL en paramètre lors de l'appel du script sur la ligne de commande.
Autre suggestion, plutot que d'avoir un seul fichier de log, pourquoi ne pas générer un fichier par jour? et dans ta log, au lieu d'écrire le jour, tu ecris l'heure,minute et seconde ...C'est juste une suggestion ...
Sinon de manière générale, evite les cat fichier | quelquechose En general tu peux t'en sortir en faisant quelquechose fichier ou quelquechose <fichier.
quelquechose
[^] # Re: deja pour commencer ...
Posté par liberforce (site web personnel) . Évalué à 2.
1. crée une fonction qui fait la vérification d'une adresse passée en paramètre, et à laquelle tu donne aussi en paramètre le nom du fichier d'alarme
2. définis le nom du fichier d'alarme dans une variable au début de ton programme, cela permet de changer facilement le fichier de trace
3. définis des valeurs de retour: un programme qui se finit avec succès renvoie toujours la valeur 0, et autre chose sinon. Définis ces codes de retour dans des variables au début du script aussi, pour pouvoir faire un "exit ERR_RESEAU_KO" plutot que "exit 1" (exemple fictif), ça améliore la lisibilité.
La valeur de retour permet aussi de chainer les programmes par exemple: prog1 && prog2 n'exécutera prog2 que si prog1 a réussi (c'est à dire a retourné 0)
4. Effectivement, inclure les heures, minutes, secondes des tests est un plus
Suivre le flux des commentaires
Note : les commentaires appartiennent à celles et ceux qui les ont postés. Nous n’en sommes pas responsables.