Alert spazio disco critico.

Capita a tutti i server che abbiamo in giro per il mondo, che per qualche motivo lo spazio disco raggiunga il 100%. Soprattutto se i server sono sottodimensionati dal punto di vista della capienza dell’HDD.

Creiamo uno script sh e lo chiamiamo controllaSpazio.sh e gli incolliamo il seguente codice:

#!/bin/bash

#admin email account
ADMIN="tuaemail@blablabla.com"

# set usage alert threshold
THRESHOLD=75

#hostname
HOSTNAME=$(hostname)

#mail client
MAIL=/usr/bin/mail

# store all disk info here
EMAIL=""

for line in $(df -hP | egrep '^/dev/' | awk '{ print $6 "_:_" $5 }')
do

part=$(echo "$line" | awk -F"_:_" '{ print $1 }')
part_usage=$(echo "$line" | awk -F"_:_" '{ print $2 }' | cut -d'%' -f1 )

if [ $part_usage -ge $THRESHOLD -a -z "$EMAIL" ];
then
EMAIL="$(date): Running out of diskspace on $HOSTNAME\n"
EMAIL="$EMAIL\n$part ($part_usage%) >= (Threshold = $THRESHOLD%)"

elif [ $part_usage -ge $THRESHOLD ];
then
EMAIL="$EMAIL\n$part ($part_usage%) >= (Threshold = $THRESHOLD%)"
fi
done

if [ -n "$EMAIL" ];
then
echo -e "$EMAIL" | $MAIL -s "Spazio disco in esaurimento su $HOSTNAME" "$ADMIN"
else 
echo "Spazio disco sufficiente. Tutte le partizioni sono sotto la soglia del "$THRESHOLD"%"
fi

Eseguire questo file all’interno di un cronjob giornaliero per essere avvertiti tempestivamente quando lo spazio sta per finire. Nel nostro caso quando lo spazio disco raggiunge il 75% della capienza come si legge da questo parametro: “THRESHOLD=75”

Fate una prova mettendo la soglia a 0% e verificare che la mail arrivi al vostro account. Spesso capita che il sistema per l’invio delle email non sia installato, ottenendo questo errore in console:

controllaSpazio.sh: 37: controllaSpazio.sh: /usr/bin/mail: not found

Quindi installare l’utilita’ per l’invio dell’email:

sudo apt install mailutils

Durante l’installazione un messaggio di Postfix Configuration chiede di scegliere un profilo generale di configurazione, noi scegliamo “Sito Internet”. Seguiamo le istruzioni.

Eseguiamo il comando

sh controllaSpazio.sh

con il THRESHOLD=0 per verificare che la mail arrivi nella vostra posta elettronica.

Lascia un commento