Ping Mail
Um den Status des Rechners per E-Mail zu senden, können Sie das folgende Befehlszeilenskript verwenden:
#!/bin/bash
# IP-Adresse des zu überprüfenden Rechners
IP_ADDRESS=<IP-Adresse>
# E-Mail-Parameter
SMTP_SERVER=<SMTP-Server-Adresse>
SMTP_PORT=<SMTP-Server-Port>
SMTP_USERNAME=<SMTP-Benutzername>
SMTP_PASSWORD=<SMTP-Passwort>
FROM=<Absender-Adresse>
TO=<Empfänger-Adresse>
SUBJECT=
"Status des Rechners $IP_ADDRESS"
# Prüfung, ob der Rechner erreichbar ist
ping -c 1
$IP_ADDRESS > /dev/null
if [ $? -eq 0 ]
then
# Überprüfung, ob der Rechner läuft
if ssh root@
$IP_ADDRESS
"pgrep systemd" > /dev/null
then
MESSAGE=
"Der Rechner mit IP-Adresse $IP_ADDRESS läuft."
else
MESSAGE=
"Der Rechner mit IP-Adresse $IP_ADDRESS läuft nicht."
fi
else
MESSAGE=
"Der Rechner mit IP-Adresse $IP_ADDRESS ist nicht erreichbar."
fi
# Senden der E-Mail
echo -e
"Subject: $SUBJECT\n\n$MESSAGE" | \
openssl s_client -connect
$SMTP_SERVER:
$SMTP_PORT -starttls smtp \
-auth plain -crlf -quiet \
-CAfile /etc/ssl/certs/ca-certificates.crt \
-cert /etc/ssl/certs/ssl-cert-snakeoil.pem \
-key /etc/ssl/private/ssl-cert-snakeoil.key \
-ign_eof \
-mail from:
$FROM \
-rcpt to:
$TO \
ata-binary @-
Das Skript verwendet den Befehl "openssl s_client", um eine E-Mail über den SMTP-Server zu senden. Sie müssen die SMTP-Server-Adresse, den SMTP-Server-Port, den SMTP-Benutzernamen und das SMTP-Passwort mit den tatsächlichen Werten ersetzen. Außerdem müssen Sie die Absender-Adresse und Empfänger-Adresse angeben. Der E-Mail-Betreff wird automatisch auf den Status des Rechners und die IP-Adresse gesetzt. Beachten Sie, dass der SMTP-Server TLS-Unterstützung benötigt. Wenn der SMTP-Server ein selbstsigniertes Zertifikat verwendet, müssen Sie das Root-Zertifikat des SMTP-Servers als CAfile angeben und das SSL-Zertifikat des SMTP-Servers als -cert-Parameter und das SSL-Schlüssel des SMTP-Servers als -key-Parameter.