Forum Programmation.shell re Script pour pinguer ? Besoin de votre aide

Posté par .
Tags : aucun
0
19
mai
2006
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 . Évalué à 2.

    cat < $fichier_param | while read host_to_test

    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 (page perso) . Évalué à 2.

      on peut aussi ajouter:
      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 à ceux qui les ont postés. Nous n'en sommes pas responsables.