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 funktionierender 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 hinein kopieren:
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 Skript ausführbar machen
sudo chmod +x /bin/status/syssstatus.sh
Zum Abschluss 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
Gib mir gerne einen Kaffee ☕ aus!
Wenn dir meine Beiträge gefallen und geholfen haben, dann kannst du mir gerne einen Kaffee ☕ ausgeben.
bc1qfuz93hw2fhdvfuxf6mlxlk8zdadvnktppkzqzj
Nachtrag vom September 2019
Kürzlich habe ich bei all meinen Raspberry Pis ein Upgrade auf das aktuellste Betriebssystem "Raspbian Buster" durchgeführt. Bei dieser Gelegenheit habe ich das obige Skript angepasst, so dass ich künftig in der Statusmeldung auch die Distributionsinformationen erhalte.
Ich habe die folgenden zwei Zeilen eingegeben:
echo "Raspbian Informationen"
cat /etc/os-release >> /var/log/status.log
Aktualisiertes Skript zum Oktrober 2018 mit Variablen
#!/bin/bash
# E-Mail Address
EMAIL='mail@mail.de'
#Location of Log File
LOGFILE='/var/log/status.log'
rm ${LOGFILE}
echo "Statusanzeige" >> ${LOGFILE}
date >> ${LOGFILE}
uname -a >> ${LOGFILE}
uptime >> ${LOGFILE}
echo "" >> ${LOGFILE}
echo "" >> ${LOGFILE}
echo "Logged In Users" >> ${LOGFILE}
users >> ${LOGFILE}
echo "" >> ${LOGFILE}
echo "Temparature (1/1000)" >> ${LOGFILE}
cat /sys/devices/virtual/thermal/thermal_zone0/temp >> ${LOGFILE}
echo "" >> ${LOGFILE}
echo "" >> ${LOGFILE}
echo "Hard drive" >> ${LOGFILE}
free >> ${LOGFILE}
echo "" >> ${LOGFILE}
echo "" >> ${LOGFILE}
df -h >> ${LOGFILE}
echo "" >> ${LOGFILE}
echo "" >> ${LOGFILE}
echo "CPU Frequency Kilohertz" >> ${LOGFILE}
cat /sys/devices/system/cpu/cpu0/cpufreq/cpuinfo_cur_freq >> ${LOGFILE}
echo "" >> ${LOGFILE}
echo "CPU Voltage" >> ${LOGFILE}
vcgencmd measure_volts core >> ${LOGFILE}
echo "" >> ${LOGFILE}
echo "" >> ${LOGFILE}
echo "Loads" >> ${LOGFILE}
echo "[1min] - [5min] - [15min]" >> ${LOGFILE}
cat /proc/loadavg >> ${LOGFILE}
echo "" >> ${LOGFILE}
echo "" >> ${LOGFILE}
echo "Memory" >> ${LOGFILE}
cat /proc/meminfo >> ${LOGFILE}
echo "" >> ${LOGFILE}
echo "" >> ${LOGFILE}
echo "Eth0 sent & received" >> ${LOGFILE}
cat /sys/class/net/eth0/statistics/tx_bytes /sys/class/net/eth0/statistics/rx_bytes >> ${LOGFILE}
echo "" >> ${LOGFILE}
echo "" >> ${LOGFILE}
echo "WLAN0 sent & received" >> ${LOGFILE}
cat /sys/class/net/wlan0/statistics/rx_bytes /sys/class/net/wlan0/statistics/tx_bytes >> ${LOGFILE}
echo 'Your Raspispy reports its status.' | mail -a ${LOGFILE} -s "Raspispy - Sysstatus" ${EMAIL} < ${LOGFILE}

ist absolut technik-begeistert und großer Fan von Linux und Open Source. Raspberry Pi Bastler der ersten Stunde und nach wie vor begeistert von dem kleinen Stück Hardware, auf dem er tolle Projekte umsetzt. Teilt hier seine Erfahrungen mit Nextcloud, Pi-hole, YubiKey, Synology und openmediavault und anderen spannenden IT-Themen. Nutzt Markdown und LaTeX zum Dokumentieren seiner Projekte und Gitea zum Versionieren. Sitzt vor einem 49“ Monitor, nutzt Windows und MacOS zum Arbeiten, Linux auf seinen Servern und virtuellen Maschinen und hört dabei Spotify und MP3s und Radio-Streams über seinen RadioPi.