Vérification automatique d’espace disque utilisé

Si vous avez des serveurs linux, il y a de fortes chances que vous ne vous en occupiez pas beaucoup, vu la fiabilité de ce système.

Ce qui fait que parfois on arrive à saturation d’un disque dur sans en avoir été informé assez tôt pour palier au problème.

Pour vous permettre d’être informé de ce type de problème simplement par email, il suffit de plannifier sur le serveur le script ci-dessous via la crontab du système.

Un lien symbolique vers le script dans le dossier /etc/cron.daily suffit normalement. Il sera exécuté toutes les nuits par le démon cron.

Contenu du script :

#!/bin/bash
#
#
# Script à plannifier dans CRON afin de tester l'espace disque occupé sur une partition.
#
# Si 90% d'une partition est utilisée, un email est expédié à l'email paramétré.
#
#

#
# adresse email de l'administrateur
#
EMAIL=mon_email@bidon.fr

#
# Correction probleme language de df
#
export LANG=us

df -P | grep -vE 'Filesystem|tmpfs|cdrom' | awk 'print $5" "$1' |while read output;
do

USEP=$(echo $output | awk 'print $1' | cut -d '%' -f1)
PARTITION=$(echo $output | awk 'print $2')
echo partition $PARTITION utilisee a $USEP %

if [ $USEP -ge 90 ]; then
echo "Espace disque insuffisant sur la partition \"$PARTITION ($USEP% occupes)\" sur $(hostname) le $(date +%d-%m-%Y) a $(date +%r)" |
mail -s "Alerte: Trop d espace disque utilise sur $partition , $USEP% occupes" $EMAIL
fi

done

#
# Fin correction probleme language de df
#
export LANG=fr_FR

J’ai utilisé un « export LANG=us » car j’ai constaté que quand cron exécute une commande, son shell est parfois en anglais suivant le paramétrage du système.

J’ai donc écrit le script en me basant sur l’affichage anglais et je remet l’affichage français à la fin du script.

Le script averti à 90% d’usage d’une partition, mais vous pouvez modifier ce choix en adaptant la condition [ $USEP -ge 90 ] du script.

Donnez également un email valide pour être informé correctement et assurez-vous que le serveur peut bien envoyer un message à cette adresse en fonctionnement « normal ».

Pensez également a donner l’attribut exécutable ( chmod +x script.sh ) au script afin que cron puisse le lancer correctement.

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *

Ce site utilise Akismet pour réduire les indésirables. En savoir plus sur comment les données de vos commentaires sont utilisées.