k-ist-k
Goto Top

Linux bei wenig Speicherplatz Email schicken

Hallo,

ich habe bei Linux Scripting leider keine Ahnung
und vllt könnt ihr mir helfen.

Ziel:
hab privat einen RaspberryPi laufen mit Wordpress.
Ich möchte täglich den Speicherplatz Verbrauch prüfen,
und wenn zB weniger Speicher frei ist als 512MB möchte eine Email erhalten.

Mit dem Befehl "df -h" kann man schön den Verbrauch prüfen, aber halt nur manuell.

Dieser Befehl gibt mir schön den freien Speicherplatz aus
df -h | grep 'dev/root' | awk '{print $4}'  

Ich weiß aber nicht wie ich die Ausgabe in eine Variable bekomme.
Hier das habe ich gefunden:
variable="$(mysql -uuser -ppassword database < sql.sql 2>&1)"  
Das funktioniert bei mir nicht.
Mit
echo $variable
wird leider nicht das ausgegeben, was ich bekomme, wenn ich den Befehl selbst eingebe.

Mein Plan wäre, wenn ich das in eine Variable bekomme.
Das ich mit If prüfe ob weniger Speicher frei ist als XX.

#!/bin/bash

if [ df -h | grep 'dev/root' | awk '{print $4}' < 512MB ]  
then
    echo "weniger als 512MB frei" | mail -s "PI wenig Speicher" xxxxx@gmail.com  
else
    echo "nichts notwendig"  
fi

---

Email habe ich folgendermaßen eingerichtet:
Gmail Email einrichten

Und dann würde ich mit Cronjob jeden Tag das eine Skript laufen lassen.


Lg K

Content-ID: 458605

Url: https://administrator.de/contentid/458605

Ausgedruckt am: 22.11.2024 um 10:11 Uhr

Lochkartenstanzer
Lösung Lochkartenstanzer 04.06.2019 aktualisiert um 21:23:38 Uhr
Goto Top
Moin:

export blablub="`df  | grep ' /$' | gawk '{print $4}'`"
echo $blablub

lks
K-ist-K
K-ist-K 04.06.2019, aktualisiert am 05.06.2019 um 07:32:41 Uhr
Goto Top
So sieht es jetzt bei mir aus:

#!/bin/bash
# -lt = less than

export spacecheck="`df  | grep ' /$' | gawk '{print $4}'`"  

if [ "$spacecheck" -lt 512000 ]  
then
        echo "Speicherplatz gering" | mail -s "Raspberry weniger als 512MB frei " xxxxx@hotmail.com  
else
        echo "nichts zu machen"  
fi

Das füge ich jetzt noch als Cronjob ein.
Danke für die Hilfe.


Lg K
Lochkartenstanzer
Lochkartenstanzer 05.06.2019 aktualisiert um 06:45:48 Uhr
Goto Top
Zitat von @K-ist-K:

m.h.............@hotmail.com

Du solltest Deinen Fauxpas beheben und Deine Mailadresse maskieren.


Das füge ich jetzt noch als Cronjob ein.

Hasz Du auch genau verstanden was die einzelnen Befehle machen und wie das funktioniert?

Ansonsten ist das hochgefährlich so etwas einfach in ein cronjob zu packen ohne z.B. aicherzustellen, daß die Pfade stimmen.

Des weiteren kannst Du das expirt weglassen, weil das nur daiür gedacht ist, daß die Variable persistent ist.

Und Du solltest noch eine Fehlerbehandlung vorsehen.

Danke für die Hilfe.

Gern geschehen.

Und Du solltest viel lesen und üben. Zum Einstieg z.B. https://www.selflinux.org/selflinux/html/shellprogrammierung.html

lks
K-ist-K
K-ist-K 05.06.2019 um 08:00:13 Uhr
Goto Top
Email Adresse wurde unkenntlich gemacht.
Das man bei Cronjobs aufpassen muss ist mir bewusst.

Solange das Skript immer am richtigen Pfad bleibt.
Kann hier mit diesem Skript nicht viel passieren oder ?

Die einzelnen Befehle verstehe ich, also was der Befehl macht.

Schönen Mittwoch 🙂
it-frosch
it-frosch 05.06.2019 um 10:37:55 Uhr
Goto Top
Hallo K,

installiere doch Logwatch und apticron auf dem Raspi, damit hast du den kompletten Überblick, was los ist.

Grüsse vom it-frosch
K-ist-K
K-ist-K 05.06.2019 um 12:35:18 Uhr
Goto Top
Danke für den Hinweis.
Eventuell werde ich mir das mal ansehen.

Aber da ich ganz selten etwas am Raspberry mache (WordPress)
möchte ich nicht immer wo nachsehen, ob alles passt.

Ich möchte automatisch informiert werden, wenn etwas nicht passt.
Und ich versuche wenn möglich, immer Boardmitteln zu nutzen.

Schönen Tag.

Lg K
bloodstix
bloodstix 05.06.2019 um 13:16:35 Uhr
Goto Top
Hallo,

hängt der Raspi denn hinter einer festen IP oder
hast du Postfix darauf so konfiguriert das es sich bei deinem HOtmail-Account anmeldet und darüber sendet?
Falls nicht könnte es Probleme beim Mailversand geben.

Gruß
bloody
K-ist-K
K-ist-K 05.06.2019 um 23:41:46 Uhr
Goto Top
Ich hab eine fixe statische WAN IP.
Und ich hab es ja schon getestet, es funktioniert : )
K-ist-K
K-ist-K 21.06.2019 um 11:32:32 Uhr
Goto Top
Hat einer eine Idee, wie man folgende Zeichen auf einer Englischen Tastatur eingibt ?
Hänge über vmware Console auf einer Linux Maschine, wo SSH nicht funktioniert.

Und brauche folgende Zeichen:
' = ä ?
` =
" = Umschalttaste Ä

Ich finde es einfach nicht.
Egal ob ich bei der Console auf Deutsch/English wechsle

Bei Windows kann man ja Zeichen direkt über "Alt" + 2, 4, 6 eingeben
Das wäre zB ÷
Gibt es was ähnliches bei Linux ?