Accueil

cmd_on_load.sh

Par Serge.

Ce script lance une commande dés que le système dépasse un seuil de charge. Cela peu être trés utile pour "sauver" un serveur, c'est à dire par exemple stopper une application ou redémarrer un serveur s'il atteint une charge excessive.

Sommaire

Utilisation

Ce script est à placer dans la crontab root. Editez le script et modifiez:

  1. Le seuil de charge, variable SEUIL
  2. L'adresse email de la personne à contacter, variable ALERTE
  3. La commande à executer en cas de dépassement de seuil, variable CMD

Installation

Copiez le script ou bon vous semble, par exemple /usr/local/sbin/cmd_on_load.sh et modifiez les droits:

chmod 700 /usr/local/sbin/cmd_on_load.sh
chown root:root /usr/local/sbin/cmd_on_load.sh

Pour éditer la crontab root, en root tapez la commande:

crontab -e

Puis placez y cette ligne:

*/5 * * * * /usr/local/sbin/cmd_on_load.sh

Le script

#!/bin/bash
#
# Tchesmeli Serge
# Execution de commande sur charge excessive  
#
#

HOSTNAME=`hostname`
DATE=`date`
#Seuil de charge
SEUIL="20"

#mail des personnes à contacter sur seuil
ALERTE="email@domaine.com"

#commande à lancer sur seuil
CMD="commande à executer" 

# On récupére la valeur entiére de la charge 5mn

LOAD=`cat /proc/loadavg | awk {'print $1'} | sed "s/\..*//"`

if [ $LOAD -gt $SEUIL ]; then

	mail -s "Alerte seuil charge !!!" $ALERTE <<EOF
------------------------------------------------------------------------
Date: $DATE 
Load: $LOAD 
Host: $HOSTNAME
------------------------------------------------------------------------

Le seuil de $SEUIL a ete depasse, la commande $CMD vient d etre executer.

EOF

#la commande viens après envoie de e-mail pour etre sur, ex : "reboot"
	
$CMD

fi

Thèmes : #administration #scripts #serge

Sauf indication contraire, ce document est placé sous licence CC-BY-SA 3.0.