Bei voller Festplatte Warn-Mail per Cronjob senden

warnung warnung unix skript shell script programmierung osbn mail linux festplattenkapazität e mail cronjob cron bash Administrator admin Das Versenden einer E-Mail durch ein Skript ist ein Klassiker der Shell-Skript-Programmierung.

In diesem Beispiel wird eine Warnung per Mail an den Administrator versandt, sobald die Root-Partition mit mehr als 85% voll ist. Das Skript kann man z.B. als täglichen Cronjob ausführen. Ab 86% Auslastung der Root-Partition geht dann eine Warnung per interner Mail an root raus.

#!/bin/sh
# CURRENT: Aktuelle Prozentzahl der Belegung der Root-Partition:
CURRENT=$(df / | grep / | awk '{ print $5}' | sed 's/%//g')

# THRESHOLD: Warn-Mail erfolgt bei Prozentzahl größer als:
THRESHOLD=85

# $CURRENT größer als $THRESHOLD? Dann Mail versenden!
if [ "$CURRENT" -gt "$THRESHOLD" ] ; then
    mail -s 'Festplattenkapazität KRITISCH!' root << EOF
Die Root-Partition ist kritisch voll! Momentan benutzt: $CURRENT%
EOF
fi

Das Skript könnt Ihr jetzt z.B. als ausführbare Datei plattencheck in /etc/cron.daily ablegen.

TIPP: Ein Skript, das in /etc/cron.daily bzw. /etc/cron.weekly abgelegt ist, sollte keinen Punkt (“.”) enthalten. Der Punkt (Beispiel: plattencheck.sh) kann dazu führen, dass das Skript nicht ausgeführt wird…

Um zu testen, ob das Skript als Cronjob funktioniert, könnt Ihr als “THRESHOLD” vorübergehend eine Zahl wählen, die unter der tatsächlichen Belegung der Root-Partition liegt.

In einem älteren Artikel habe ich übrigens einmal beschrieben, wie Ihr per Shell-Skript auch automatisiert E-Mails z.B. durch Euer Konto von web.de versenden könnt: Ohne Mailserver emails per shell script versenden (SMTP over TLS)