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.
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)
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 🙂