Forum Programmation.shell Reboot d'un serveur

Posté par  .
Étiquettes : aucune
0
16
mai
2008
Bonsoir tout le monde. Je cherche a faire un script de surveillance de reboot d'un serveur. le fichier 'fich_reb' contient les dernières lignes d'un last. Voila le code que j'ai écrit mais je suis bloqué à ce niveau:

#!/bin/ksh
last -4f > fich_reb

cat fich_reb | while read line
do

reb=`echo $line | awk ' { print $1 }'`
heure=`echo $line | awk ' { print $4 }


if [$reb="reboot"]



done

vous en pensez quoi ?
  • # uptime

    Posté par  . Évalué à 2.

    ta regarder uptime ?
    • [^] # Re: uptime

      Posté par  . Évalué à 1.

      Oui merci pnb666 mais c'est le reboot d'un serveur qui est demandé.
  • # Cron ?

    Posté par  . Évalué à 3.

    Si tu as un cron qui tourne tu peux regarder de ce coté là :

    man 5 crontab :
    string meaning
    ------ -------
    @reboot Run once, at startup.

    Ça te permet de lancer une commande après chaque reboot...
    • [^] # Re: Cron ?

      Posté par  . Évalué à 1.

      J'ai lu le man mais je n'ai pas vraiment compris comment utiliser '@reboot', pourtant cela pourrait m'être très utile.
      • [^] # Re: Cron ?

        Posté par  . Évalué à 2.

        Apparemment, @reboot permet de ne pas donner les spécifications temporelles normalement présentes dans ton crontab ; tu pourrais donc rajouter
        @reboot /bin/date > fichier.log

        dans ton /etc/crontab, et ça serait exécuté à chaque reboot.
        • [^] # Re: Cron ?

          Posté par  . Évalué à 1.

          Merci c'est une bonne idée. Je m'y met tout de suite
  • # comparaison de mots

    Posté par  . Évalué à 1.

    serait-il possible de demander au shell d'exécuter une action en fonction d'un mot trouvé ? (si 'reboot' alors ...)
    • [^] # Re: comparaison de mots

      Posté par  . Évalué à 1.

      j'ai essayé :
      if [$reb="reboot"]; then echo "le serveur etait down"; fi
      mais la comparaison doit certainement mal écrite ou impossible.
  • # une autre façon... mais sa bloque toujours

    Posté par  . Évalué à 1.

    Je vais utiliser la comparaison de chaine de caractères :


    #!/bin/ksh
    last -4 > fich_reb

    cat fich_reb | while read line
    do

    reb=`echo $line | awk ' { print $1 }'`
    heure=`echo $line | awk ' { print $9 }'`
    reboot="reboot"

    if ["$reb" = "$reboot"]; then echo "le serveur etait down mais il est lance depuis $heure ."; fi
    echo $reb;

    done

    #echo "" > fich_reb

Suivre le flux des commentaires

Note : les commentaires appartiennent à celles et ceux qui les ont postés. Nous n’en sommes pas responsables.