Script de monitoring Hardware – monitoring_serveur.sh

Nov 04
2008

Un petit script de monitoring de diverses températures système ainsi que de l’espace disque.

Pré-requis :

  • hddtemp
  • lm_sensors

#
# Script de monitoring du serveur
#
#
#
# Variables
export LANG=fr_FR.ISO-8859-15
#echo $LANG
#
#HDD_1 > 80 Go
#HDD_2 > 500 Go
#HDD_3 > 120 Go

HDD_SIZE_1=95
HDD_SIZE_2=95
HDD_SIZE_3=80
HDD_TEMP_1=50
HDD_TEMP_2=50
HDD_TEMP_3=50
CM_TEMP=50
CPU_TEMP=60
ERR= »0″
SUJET= »Monitoring serveur »
EMAIL_DEST= »barthoi@localhost.localdomain »
TMP_FILE= »/tmp/monitoring_serveur.tmp »

# Création du fichier temporaire (vide si pas d’alerte)
touch $TMP_FILE
#Valeur en % d’utilisation dela partition /
VAR_TEMP=`df -h / |tail -1 | cut -c41-42`
if [ « $VAR_TEMP » -gt « $HDD_SIZE_1 » ] ; then
echo « Espace disque disque élevée (/) : $VAR_TEMP% (limite : $HDD_SIZE_1%) » >> $TMP_FILE
ERR= »1″
fi
VAR_TEMP=`df -h /home |tail -1 | cut -c41-42`
if [ « $VAR_TEMP » -gt « $HDD_SIZE_2 » ] ; then
echo « Espace disque disque élevée (/home): $VAR_TEMP% (limite : $HDD_SIZE_2%) » >> $TMP_FILE
ERR= »1″
fi
VAR_TEMP=`df -h /opt |tail -1 | cut -c41-42`
if [ « $VAR_TEMP » -gt « $HDD_SIZE_3 » ] ; then
echo « Espace disque disque élevée (/opt): $VAR_TEMP% (limite : $HDD_SIZE_3%) » >> $TMP_FILE
ERR= »1″
fi

#Temperature du disque sda
VAR_TEMP=`sudo hddtemp -n /dev/sda`
if [ « $VAR_TEMP » -gt « $HDD_TEMP_1 » ] ; then
echo « Température HDD_1 trop élevée : $VAR_TEMP (limite : $HDD_TEMP_1°C) » >> $TMP_FILE
ERR= »1″
fi

#Temperature du disque sdb
VAR_TEMP=`sudo hddtemp -n /dev/sdb`
if [ « $VAR_TEMP » -gt « $HDD_TEMP_2 » ] ; then
echo « Température HDD_2 trop élevée : $VAR_TEMP (limite : $HDD_TEMP_2°C) » >> $TMP_FILE
ERR= »1″
fi
#Temperature du disque sdc
VAR_TEMP=`sudo hddtemp -n /dev/sdc`
if [ « $VAR_TEMP » -gt « $HDD_TEMP_3 » ] ; then
echo « Température HDD_3 trop élevée : $VAR_TEMP (limite : $HDD_TEMP_3°C) » >> $TMP_FILE
ERR= »1″
fi

#Temperature CM
VAR_TEMP=`sudo sensors | grep « temp2″ |cut -d »+ » -f2 |cut -d ». » -f1 |cut -d »° » -f1`
if [ « $VAR_TEMP » -gt « $CM_TEMP » ] ; then
echo « Température CM trop élevée : $VAR_TEMP (limite : $CM_TEMP°C) » >> $TMP_FILE
ERR= »1″
fi

#Temperature CPU
VAR_TEMP=`sudo sensors | grep « Core 0″ |cut -d »+ » -f2 |cut -d ». » -f1 |cut -d »° » -f1`
if [ « $VAR_TEMP » -gt « $CPU_TEMP » ] ; then
echo « Température CPU_0 trop élevée : $VAR_TEMP (limite : $CPU_TEMP°C) » >> $TMP_FILE
ERR= »1″
fi
VAR_TEMP=`sudo sensors | grep « Core 1″ |cut -d »+ » -f2 |cut -d ». » -f1 |cut -d »° » -f1`
if [ « $VAR_TEMP » -gt « $CPU_TEMP » ] ; then
echo « Température CPU_1 trop élevée : $VAR_TEMP (limite : $CPU_TEMP°C) » >> $TMP_FILE
ERR= »1″
fi

# Test final pour envoi ou non du message.
if [ « $ERR » = « 0 » ] ; then
echo « Tous les moniteurs sont corrects. »
else
cat $TMP_FILE
mail -s « $SUJET » $EMAIL_DEST < $TMP_FILE
fi

# suppression du fichier temporaire
rm $TMP_FILE

Comments are closed.