Il software è come il sesso, è meglio quando è libero. (Software is like sex, it's better when it's free).

— Linus Torvalds

Space disk monitor

http://www.stenoweb.it/files/blog/diskusage.png Se i server da tenere sotto controllo cominciano ad essere molti, può risultare complicato a volte tenere sotto controllo l'occupazione disco di tutti. Ecco allora un comodo script trovato nei forum di Ubuntu che ci viene in aiuto inviandoci una semplice email se l'occupazione disco supera, ad esempio, il 90%.

Creazione

Creiamo lo script:

sudo nano /usr/bin/diskusage

e inseriamoci questo:
#!/bin/sh
df -H | grep -vE '^Filesystem|none|cdrom' | awk '{ print $5 " " $1 }' | while read output;
do
echo $output
usep=$(echo $output | awk '{ print $1}' | cut -d'%' -f1 )
partition=$(echo $output | awk '{ print $2 }' )
if [ $usep -ge 90 ]; then
echo "Running out of space \"$partition ($usep%)\" on $(hostname) as on $(date)" |
mail -s "Alert: Almost out of disk space $usep%" youremailaddress@gmail.com
fi
done

sostituiamo youremailaddress@gmail.com con il nostro indirizzo email e ricordiamoci di rendere eseguibile lo script:
sudo chmod +x /usr/bin/diskusage

Uso

Ora scheduliamo il comando:

sudo crontab -e

ad esempio per una esecuzione giornaliera.
10 0 * * * /usr/bin/diskusage

Bene. Se l'occupazione di una qualunque delle partizioni montate supera il 90% ci viene inviata una mail del tipo:
Subject: Alert: Almost out of disk space 90%

Running out of space "/dev/sda1 (90%)" on myserver as on mar dic 14 16:58:23 CET 2010