Schijfruimte linux server monitor

Script voor monitoren schijfruimte

Een linux systeem bestaat uit partities die belangrijk zijn voor het goed functioneren van de server. De /var partitie bijvoorbeeld is belangrijk voor het goed functioneren van mysql. De partitities kunnen soms vollopen, bijvoorbeeld door spam of grote logfiles. Om het systeem te monitoren is het verstandig om een cronjob in te stellen waarmee het volgende script regelmatig wordt uitgevoerd. Voel je vrij om de code over te nemen en aan te passen voor eigen gebruik…

#!/bin/sh

## pas de volgende waarde naar wens aan: het percentage waar de waarschuwing moet worden gegeven.
warninglimit=86

lowlimit=90

## vul hier uiteraard de van toepassing zijnde filesystems in

filesystems=”/home /var /tmp /”

for fs in $filesystems
do

## bepaal de schijfruimte, selecteer de kolom waar de vrije ruimte in staat en verwijder het % teken.
size=df -h -P $fs|grep $fs|awk '{print $5; }' | sed 's/%//g'

if [ $size -ge $lowlimit ]
then
echo “ALARM: Filesystem bijna vol: $fs ($size”%”) afzendermail@example.com” | mailx -s “ALARM: filesystem NAAMFILESYSTEM” ONTVANGER@example.com
break
fi
if [ $size -ge $warninglimit ]
then
echo “WAARSCHUWING: Filesystem raakt bijna vol: $fs ($size”%”) afzendermail@example.com” | mailx -s “Waarschuwing filesystem NAAMFILESYSTEM”¬†ONTVANGER@example.com
fi
done

Vervolgens moet je ervoor zorgen dat dit script getriggerd wordt door een cronjob. Voor het instellen van een cronjob doe je crontab -e (edit). Vervolgens vul je het volgende in:

0 9,14 * * * /etc/fsmonitor.sh

In dit voorbeeld wordt het script om 9:00 en 14:00 uur uitgevoerd op elke dag van de week. Dat kun je natuurlijk aanpassen naar behoefte.
Als het schijfgebruik over de ‘warninglimit’ of ‘lowlimit’ heengaat, wordt er een mail gestuurd en zul je schijfruimte moeten vrijmaken.