Da wohl nicht jeder genau weiß, wie viel freier Speicherplatz noch auf dem Server zur Verfügung steht, gibt es die Möglichkeit, dass man sich eine E-Mail schicken lässt, wenn der Server nur noch wenig Speicher hat. Wie das genau geht zeige ich euch hier. Voraussetzung ist natürlich ein Funktionierender E-Mail Server. Wie ihr einen solchen erstellt könnt ihr hier auf der Webseite nachlesen.

0. Vorrausetzungen

Ihr müsst folgendes Paket installieren:

apt-get update
apt-get install bsd-mailx

1. Shell Skript erstellen

Ihr müsst eine Shell Skript Datei erstellen. Dies macht ihr mit folgendem Befehl:

nano /root/festplattencheck.sh

Ihr könnt die Datei auch anders nennen bzw. an einem anderen Ort speichern.

Nun kopiert ihr folgendes in die Datei:

#!/bin/sh
#Empfaenger der E-Mail
ADMIN="deineE-Mail@domain.de"

# Auslastung: zeigt an, zu wie viel Prozent die Festplatte belegt ist
Auslastung=$(df / | grep / | awk '{ print $5}' | sed 's/%//g')

# Warnung: Wert, ab dem eine E-Mail verschickt werden soll
Warnung=90

# Programmlogik zum Entscheiden, ob eine E-Mail verschickt werden soll
if [ "$Auslastung" -gt "$Warnung" ] ; then
    mail -s 'Festplattenkapazität KRITISCH!' ${ADMIN} << EOF
Die Festplatte deines Servers ist zurzeit zu $Auslastung% gefüllt.
EOF
fi

Erklärung:

Auslastung: Gibt an, zu wie viel Prozent die Festplatte momentan ausgelastet ist

Warnung: Ab wie viel Prozent eine Warnung per E-Mail verschickt werden soll.

ADMIN: E-Mail Adresse, wer die E-Mail erhalten soll.

2. Skript automatisch ausführen

Damit das Skript automatisch ausgeführt wird, müssen wir noch einen Cron Task anlegen. Dies geht so:

crontab -e

Hier scrollen wir bis ganz nach unten und geben folgendes ein:

0 3 * * * /root/festplattencheck.sh

Erklärung:

1. Stelle: Minute -> 0
2. Stelle: Stunde -> 3
3. Stelle: Tag des Monats -> *
4. Stelle: Monat -> *
5. Stelle: Wochentag -> *

Es wird also jede Nacht um 03:00 das Skript ausgeführt.

Teile diesen Beitrag
Christian

Categories:

3 Kommentare

  1. Super geschrieben kleiner Fehler aber noch im Script.

    Die Festplatte deines Servers ist zurzeit zu $CURRENT% gefüllt.
    Ändern in
    Die Festplatte deines Servers ist zurzeit zu $Auslastung% gefüllt.

    War wohl ein Flüchtigkeitsfehler sonst TOP 🙂

  2. Hallo Christian,

    nicht schlecht das Ganze. So etwas suche ich. Irgendwo hakt es aber noch. Nur das bsd-mailx Paket scheint nicht zu genügen. Ich habe daher die Anleitung unter https://wiki.ubuntuusers.de/Postfix/

    befolgt. Leider auch ohne echten Erfolg. Der einfache Test mit „mail -v adresse“ geht zunächst und ich bekomme auch eine Nachricht, das da was passiert ist, aber die Zieladresse wird nicht „angeschrieben“. Leider verstehe ich auch nicht alles wirklich, aber vielleicht gibts irgendwo noch eine bessere Anleitung für den MTA.

    Jedenfalls kommt keine Fehlermeldung, wenn ich „mail ….“ aufrufe, lediglich „Mail Delivery Status Report will be mailed to <root>“ steht da. Aus den logfiles werde ich nicht schlau, vielleicht liegt es daran, dass irgendwie Sender und Empfänger vertauscht oder gleich sind.

    Irgend eine Idee oder weiß jemand, wo’s steht?  Schonmal verbindlichen Dank!

    Gruß

    Uwe

    (Ubuntu 16)

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.

Spenden

Persönliche Informationen

Spendensumme: 2€