Stefan's Weblog

18Sep/140

Rasperry Pi Status per E-Mail

In meinem Beitrag ➡ Systeminformationen beim Login auf der Konsole ausgeben beschreibe ich, wie man Systemstatusinformationen bei jedem Login auf der Konsole ausgegeben bekommt. Da man aber nicht immer die Konsole zu Hand hat ist oftmals etwas unpraktisch. Da einer meiner Pis als Überwachungskameras im Einsatz ist, wollte ich in regelmäßigen Abständen einen Statusbericht per E-Mail erhalten.

Bevor ihr hier weitermachen könnt, wird ein funktionierener MTA auf dem Pi benötigt, der für euch die E-Mail an ein definiertes Postfach versenden kann. Falls ihr das noch nicht konfiguriert habt, schaut euch doch mal die folgende Anleitung hier im Blog an ➡ Motion mit E-Mail-Versand, dort wird die Installation und Konfiguration von Postfix beschrieben.

Funktioniert der E-Mail-Versand, dann könnt ihr das folgende Skript auf euren Pi kopieren. Es ist dabei zu beachten, dass manche Befehle nur als sudo/root auszuführen sind. Ihr könnt das Script damit z.B. in das Verzeichnis /bin/status kopieren.
Ich habe das Skript jedoch in das home-Verzeichnis des Pi-Nutzers gelegt. Hierbei ist darauf zu achten, dass zum editieren keine besonderen Rechte vorhanden sind und ggf. andere Benutzer das Skript um weitere Befehle erweitern könnten.

Also Skript anlegen und den Inhalt hineinkopieren:

sudo nano /bin/status/syssstatus.sh

#!/bin/bash

rm /var/log/status.log

echo "Statusanzeige" >> /var/log/status.log
date >> /var/log/status.log
uname -a >> /var/log/status.log
uptime >> /var/log/status.log
echo "" >> /var/log/status.log
echo "" >> /var/log/status.log
echo "Logged In Users" >> /var/log/status.log
users >> /var/log/status.log
echo "" >> /var/log/status.log
echo "Temparature (1/1000)" >> /var/log/status.log
cat /sys/devices/virtual/thermal/thermal_zone0/temp >> /var/log/status.log
echo "" >> /var/log/status.log
echo "" >> /var/log/status.log
echo "Hard drive" >> /var/log/status.log
free >> /var/log/status.log
echo "" >> /var/log/status.log
echo "" >> /var/log/status.log
df -h >> /var/log/status.log
echo "" >> /var/log/status.log
echo "" >> /var/log/status.log
echo "CPU Frequency Kilohertz" >> /var/log/status.log
cat /sys/devices/system/cpu/cpu0/cpufreq/cpuinfo_cur_freq >> /var/log/status.log
echo "" >> /var/log/status.log
echo "CPU Voltage" >> /var/log/status.log
vcgencmd measure_volts core >> /var/log/status.log
echo "" >> /var/log/status.log
echo "" >> /var/log/status.log
echo "Loads" >> /var/log/status.log
echo "[1min] - [5min] - [15min]" >> /var/log/status.log
cat /proc/loadavg >> /var/log/status.log
echo "" >> /var/log/status.log
echo "" >> /var/log/status.log
echo "Memory" >> /var/log/status.log
cat /proc/meminfo >> /var/log/status.log
echo "" >> /var/log/status.log
echo "" >> /var/log/status.log
echo "Eth0 sent & received" >> /var/log/status.log
cat /sys/class/net/eth0/statistics/tx_bytes /sys/class/net/eth0/statistics/rx_bytes >> /var/log/status.log
echo "" >> /var/log/status.log
echo "" >> /var/log/status.log
echo "WLAN0 sent & received" >> /var/log/status.log
cat /sys/class/net/wlan0/statistics/rx_bytes /sys/class/net/wlan0/statistics/tx_bytes >> /var/log/status.log

echo 'Your Raspispy reports its status.' | mail -a /var/log/status.log -s "Raspispy - Sysstatus"  < /var/log/status.log

Das Skipt ausführbar machen

sudo chmod +x /bin/status/syssstatus.sh

Zum Abschluß tragt ihr noch einen Cron-Job ein, damit das Skript in regelmäßigen Abständen ausgeführt wird.

sudo crontab -e

In diesem Beispiel wird das Skript automatisch um 8 Uhr ausgeführt und sendet eine Nachricht an die angegebenen E-Mail-Adresse:

0 8 * * * /bin/bash /bin/status/syssstatus.sh

Weitere Hilfe zum Anlegen von Cron-Jobs findet ihr in meinem Beitrag ➡ Automatisches Update mit Reboot mit Hilfe eines Cron-Jobs

Bildquelle: raspberrypi.org

hat dir dieser Artikel gefallen?

Dann abonniere doch diesen Blog per RSS Feed!

Kommentare (0) Trackbacks (0)

Zu diesem Artikel wurden noch keine Kommentare geschrieben.


Leave a comment

Noch keine Trackbacks.

%d Bloggern gefällt das: