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.