Christophe CasalegnoAutoimmune warrior, Entrepreneur & Bio/Hacker

brain@127.0.0.1:~$ cat post.html

Comment déclencher automatiquement une action quand la charge devient trop élevée

Quand on administre des serveurs, il peut être utile de déclencher automatiquement certaines actions si la charge devient trop élevée : redémarrer un service, ajouter une règle de firewall, tuer un processus, envoyer une alerte, etc. Le problème de beaucoup de scripts shell qui font ça, c’est que si la charge redescend lentement après l’action, le script risque de recommencer à tuer des processus ou à redémarrer des services. Et ça peut finir par provoquer une interruption de service.

La solution consiste à relever deux fois la charge avant de lancer vos commandes.

Place au code :

#!/bin/sh
tsleep=2 # time to wait before 2 checks
llimit=8 # load limit before action
alert=monitor@christophe-casalegno.com #put your monitor alert email here
host=`hostname -f`
load=`cat /proc/loadavg |awk {'print $1'}|cut -d "." -f1` # The load average now
sleep $tsleep
load2=`cat /proc/loadavg |awk {'print $1'}|cut -d "." -f1` # The load average after tsleep
if test "$load" -ge $llimit
then
        if test "$load2" -ge $load
        then
        date=`date`
        echo "The Load Average has reached $load1 and $load2 on $host" | mail -s "$host : High Load Average Alert" $alert
        echo "$date : The Load Average has reached $load1 and $load2 on $host" >> /var/log/loadavg.log
        else
        echo "ok" 1>&2
       fi
else                                                                                                                                              
sleep 1
fi

Il ne vous reste plus qu’à mettre ce script dans votre crontab, toutes les minutes par exemple, et à souhaiter une bonne nuit à votre serveur ;). Vous pouvez aussi télécharger directement le script ici : http://127.0.0.1:8767/tools/loadcheck.sh

Christophe Casalegno
​Vous pouvez me suivre sur : Twitter | Facebook | Linkedin | Telegram | Youtube

1 commentaire

  1. Rétrolien : Bash : how to simply check disk space on linux and take action when a threshold is reached | Christophe Casalegno

Laisser un commentaire

Ajouter un commentaire
Christophe Casalegno Brain 0verride

Soyez simple
et direct !