Skip to content

Instantly share code, notes, and snippets.

@Heolink
Last active August 29, 2015 14:23
Show Gist options
  • Save Heolink/1f76d11f4556752e5ebf to your computer and use it in GitHub Desktop.
Save Heolink/1f76d11f4556752e5ebf to your computer and use it in GitHub Desktop.
HDD Probe
#!/bin/bash
# Pour rendre le fichier executable
# chmod +x hddProb.sh
#
# cron toute les 30 minutes avec pour limite d'usage 60 par défaut si non définit c'est à 90%
# crontab -e */30 * * * * /chemindemonscript/hddProb.sh -l=60
#
#le hostname de la machine
hostname=`hostname`
#l'ip de la machine
ip=`hostname --ip-address`
#
# Paramétre par défaut si aucune option
#
#liste des emails qui vont recevoir l'alerte (email@email.fr email2@email.fr)
emails=(email@email.fr)
#la limite de remplissage du disque si elle n'est pas définit en paramétre
percentageLimit=90
#on récupére le pourcentage utilisé sur le disque
currentPercentage=`df / | awk '{ print $5 }' | tail -n 1`
#on supprime le % du résultat optenu avec la commande précédente
currentPercentage=${currentPercentage//%}
#sujet du mail
subject="Attention manque de place sur ${hostname} : ${ip}"
#message du mail
message="Il ne reste que ${currentPercentage}% sur ${hostname} avec pour IP: ${ip}"
#définit la limit et les emails via les options -l=90 -e="email@example.fr email2@example.fr"
for i in "$@"
do
case $i in
-l=*|--limit=*)
percentageLimit="${i#*=}"
shift # past argument=value
;;
-e=*|--emails=*)
emails=("${i#*=}")
shift # past argument=value
;;
esac
done
#si le pourcentage et >= à la limite on envoie un email
if [[ "$currentPercentage" -ge "$percentageLimit" ]]; then
#on boucle sur tout les emails du tableau pour envoyer l'email
for email in ${emails[*]}
do
echo "Send email : ${email}"
#on envoie l'email
mail -s "${subject}" "${email}" <<< "${message}"
done
fi
@Heolink
Copy link
Author

Heolink commented Jun 15, 2015

A mettre dans un cron pour envoyer un email quand le disque dur dépasse un % d'utilisation.
avec -l=90 ou --limit=60 possibilité de choisir la limite via un paramètre de commande
pour les emails -e="mon@email.fr support@email.fr" ou --emails="mon@email.fr support@email.fr"

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment