Zum Inhalt

Raspberry Pi - Systemstatus per E-Mail versenden

Seit einigen Jahren verwende ich auf all meinen Raspberry Pis das gleiche Skript, um mir in regelmäßigen Abständen Informationen über das System und Hardware per E-Mail zu zusenden.

Ich habe vor kurzem das Skript ein wenig angepasst und zwei weitere Abschnitte hinzugefügt.

Im ersten Abschnitt werden nun die Details über die verwendete Raspberry Pi Hardware mit gesendet:

echo "Raspberry Pi Hardware" >> ${LOGFILE}
cat /sys/firmware/devicetree/base/model >> ${LOGFILE}

Es wird genau angegeben welches Raspberry Pi Model in welcher Revision verwendet wird. Das ist ganz praktisch, wenn man z.B. ein neues Netzteil, SD-Karte oder ein neues Gehäuse für den Pi benötigt. Eine Übersicht über alle Pi-Generationen gibt es auf der offiziellen Website

Im zweiten Abschnitt werden Infos zum verwendeten Betriebssystem mitgeschickt:

echo "Raspberry Pi OS Informationen" >> ${LOGFILE}
cat /etc/os-release >> ${LOGFILE}

Das sieht dann z.B. so aus:

Raspberry Pi OS Informationen
PRETTY_NAME="Raspbian GNU/Linux 10 (buster)"
NAME="Raspbian GNU/Linux"
VERSION_ID="10"
VERSION="10 (buster)"
VERSION_CODENAME=buster
ID=raspbian
ID_LIKE=debian
HOME_URL="http://www.raspbian.org/"
SUPPORT_URL="http://www.raspbian.org/RaspbianForums"
BUG_REPORT_URL="http://www.raspbian.org/RaspbianBugs"

Die anderen Abschnitte des Skripts habe ich nicht geändert. Es werden nach wie vor Informationen zu

  • aktuell eingeloggte Benutzer
  • Temperatur
  • Festplattenauslastung
  • Festplattenkapazität
  • versendete Bits über die Netzwerkschnittstellen Eth0 und WLAN0
  • usw.

ausgegeben.

Das Skript habe ich im Ordner /etc/scripts angelegt, wo ich meine gesamten Shell-Skripte abgelegt habe.

sudo nano /etc/scripts/sysstatus.sh

Ich habe die Rechte für das Skript noch ein wenig angepasst, dass nur ein Benutzer mit "sudo" das Skriptändern und ausführen kann.

sudo chown root:root /etc/scripts/sysstatus.sh
sudo chmod 0600 /etc/scripts/sysstatus.sh

Das Skript ist dann ausführbar zu machen:

sudo chmod +x /etc/scripts/sysstatus.sh

Damit das Skript auch zu einer festgelegten Zeit ausgeführt wird und euch die Informationen zu gesendet werden, ist noch ein Eintrag in der crontab zu erstellen.

sudo crontab -e
0 8 * * * /bin/bash /etc/scripts/sysstatus.sh

Das Skript setzt voraus, dass auf dem Raspberry Pi E-Mail mit mutt versendet werden kann. Eine detaillierte Anleitung zum Einrichten gibts hier

Und hier das gesamte Skript:

#!/bin/bash

# Stefan´s Weblog
# by strobelstefan.de
# Rasperry Pi Status per E-Mail
# https://strobelstefan.de

# E-Mail Address
EMAIL="email@mydomain.de"

# Remove log file to make sure we have the correct to send out via EMAIL
LOGFILE="/var/log/status.log"

rm ${LOGFILE}


echo "Raspberry Pi Hardware" >> ${LOGFILE}
cat /sys/firmware/devicetree/base/model >> ${LOGFILE} 
echo "" >> ${LOGFILE}
echo "" >> ${LOGFILE}
echo "Raspberry Pi OS Informationen" >> ${LOGFILE}
cat /etc/os-release >> ${LOGFILE}
echo "" >> ${LOGFILE}
echo "" >> ${LOGFILE}
echo "Status Panel" >> ${LOGFILE}
date >> ${LOGFILE}
uname -a >> ${LOGFILE}
uptime >> ${LOGFILE}
echo "" >> ${LOGFILE}
echo "" >> ${LOGFILE}
echo "Temperature (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}


# This line sends out the LOGFILE to defined EMAIL
# Please refer to https://strobelstefan.de/2020/12/01/e-mail-versand-fuer-den-raspberry-pi-konfigurieren/
# You need to install some additional packages and you have to configure them.
echo 'Your Nextcloud reports its status.' | mutt ${EMAIL} -a ${LOGFILE} -s "Nextcloud - Reports its System Status"

Gib mir gerne einen Kaffee ☕ aus ❗️

Wenn dir meine Beiträge gefallen und geholfen haben, dann kannst du mir gerne einen Kaffee ☕️ ausgeben.

Donation via PayPalDonation via LiberaPay

Donation via Bitcoin
Bitcoin Address: bc1qfuz93hw2fhdvfuxf6mlxlk8zdadvnktppkzqzj

Source
  • Bildquelle: Gemeinfrei-ähnlich freigegeben durch unsplash.com • Louis Reed