1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48
| # ! /bin/bash
# Espace disque occupés de tous les FS d'une machine (seuils d'alerte et d'erreur en paramètres à changer)
# MC le 01/10/2019
# Variables
fichier="test.txt" #Fichier en entrée
email="mon.adresse.email.fr" #Destinataire du message
seuilerr=90 #Seuil d'erreur a*modifier (poucentage d'occupation du disque)
seuilwarn=70 #Seuil de warning a*modifier (poucentage d'occupation du disque)
while IFS= read -r ligne
do
machine="root@"$ligne
#Ouverture du canal
# Espace disque disponible : gestion des alertes
dfree=$(ssh -p $machine df -Pm | awk -v err=$seuilerr -v att=$seuilwarn '
NR>1 {total+=$2; utilise+=$3; dispo+=$4;
if (+$5>err){printf " => ALERTE : %15s OCCUPE A : %4d% KO\n", $6, $5 }
else if (+$5>att){printf " => WARNING : %15s OCCUPE A : %4d% OK\n", $6, $5 }
else {printf " => NOTE : %15s OCCUPE A : %4d% OK\n", $6, $5 }}
END{print " => Taille totale du disque : " total " Mo - Utilisee : " utilise " Mo - dispo : " dispo " Mo"}')
# Mémoire disponible : pour information
mfree=$(ssh -p $machine vmstat 1 2 -S M | awk 'END {print " => Disponibilité du CPU : "$15"% - Mémoire disponible : "$4" Mo"}')
message="\n
###################\n
Nom de la machine : $machine . \n
###################\n
$dfree \n
$mfree \n"
# Programme principal
if [ $(echo $dfree | grep -c ALERTE) -gt 0 ]
then
echo -e "$message" | /usr/bin/mutt -x -s "Espace disque presque sature sur : " . $machine $email >/dev/null 2>&1
fi
done < "$fichier"
# Fin
exit 0 |
Partager