E-Mail Benachrichtigung von Ubuntu Server mit ssmtp
Hallo Admins,
ich habe einen Ubuntu Server 12.04 LTS.
Mittels Rsnapshot wird auf einen externen Datenträger und zusätzlich auf einen entfernten Rechner täglich, wöchentlich und monatlich ein Backup erstellt.
Ich habe mir ssmtp installiert und das funktioniert soweit mit einem Testfile ganz gut.
Meine Frage ist jetzt, wie ich dem System sagen kann, dass er mir nach jedem (hoffentlich kommt das nie vor) fehlerhaften Backup eine E-Mail schickt. Muss ich das im /etc/cron.d/rsnapshot mitgeben? Gibt es dafür eine eigene Config-Datei?
Schönen Abend,
Gruß,
Michi
Edit: Das Logfile liegt in
ich habe einen Ubuntu Server 12.04 LTS.
Mittels Rsnapshot wird auf einen externen Datenträger und zusätzlich auf einen entfernten Rechner täglich, wöchentlich und monatlich ein Backup erstellt.
Ich habe mir ssmtp installiert und das funktioniert soweit mit einem Testfile ganz gut.
ssmtp meine_e-mailadresse@domain.com < testmail.txt
Meine Frage ist jetzt, wie ich dem System sagen kann, dass er mir nach jedem (hoffentlich kommt das nie vor) fehlerhaften Backup eine E-Mail schickt. Muss ich das im /etc/cron.d/rsnapshot mitgeben? Gibt es dafür eine eigene Config-Datei?
Schönen Abend,
Gruß,
Michi
Edit: Das Logfile liegt in
var/log/rsnapshot
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 202835
Url: https://administrator.de/forum/e-mail-benachrichtigung-von-ubuntu-server-mit-ssmtp-202835.html
Ausgedruckt am: 30.03.2025 um 14:03 Uhr
3 Kommentare
Neuester Kommentar

Guten Abend,
ich würde den Rückgabewert von rsnapshot untersuchen. Der Cronjob sollte demnach nicht einfach rsnapshot starten, sondern ein Skript welches rsnapshot startet und den Rückgabewert abfängt
Dazu musst Du Dir aber die möglichen Rückgabewerte von rsnapshot ansehen, z.B. hier http://www.rsnapshot.org/rsnapshot.html#exit_values
Du kannst natürlich auch dafür sorgen, dass Errorausgaben mit in den Mailtext kommen.
Ich habe allerdings keine Erfahrung mit rsnapshot, vielleicht gibt es bessere Möglichkeiten.
Markus
ich würde den Rückgabewert von rsnapshot untersuchen. Der Cronjob sollte demnach nicht einfach rsnapshot starten, sondern ein Skript welches rsnapshot startet und den Rückgabewert abfängt
RETURNVAL=$(rsnapshot ....)
if [ $RETURNVAL != 0 ]; then
ssmtp meine_e-mailadresse@domain.com < errormail.txt
fi
Du kannst natürlich auch dafür sorgen, dass Errorausgaben mit in den Mailtext kommen.
tail /var/log/rsnapshot >> errormail.txt
Ich habe allerdings keine Erfahrung mit rsnapshot, vielleicht gibt es bessere Möglichkeiten.
Markus

Guten Morgen,
also die Punkte stehen für die Optionen, in Klammern steht der komplette Befehl, so wie Du ihn auf der Kommandozeile eingibst wenn es nicht per Skript geschieht. Dann sollte die variable $RETURNVAL (die Du natürlich auch anders nennen kannst) die Ausgabe des Befehls beinhalten. Ggf. musst Du die Ausgabe von STDERR umleiten http://www.thomas-krenn.com/de/wiki/Bash_sdtout_und_stderr_umleiten
Jedenfalls kannst Du anhand von $RETURNVAL herausfinden, ob rsnapshot ohne Fehler durch gelaufen ist.
Ich hab's gerade mal installiert, hier ein Beispiel auf der Kommandozeile:
Zum Logfile: tail gibt die letzten 10 Zeilen der Datei aus, das kannst Du aber mit der -n Option ändern. Du muss es ausprobieren, führe den rsnapshot-Befehl mal auf der Kommandozeile so aus, dass ein Fehler passiert und schau Dir danach das Logfile an. Hänge soviele Zeilen an den Mailtext an, dass Du weißt was passiert ist. (Meistens reicht es ja, wenn Du weißt, dass es nicht geklappt hat, aber wenn der Rechner 100 km entfernt steht, dann ist es vielleicht sinnvoll wenn die Mail Dir sagt, dass Du vorher noch eine Festplatte kaufen musst
)
Markus
also die Punkte stehen für die Optionen, in Klammern steht der komplette Befehl, so wie Du ihn auf der Kommandozeile eingibst wenn es nicht per Skript geschieht. Dann sollte die variable $RETURNVAL (die Du natürlich auch anders nennen kannst) die Ausgabe des Befehls beinhalten. Ggf. musst Du die Ausgabe von STDERR umleiten http://www.thomas-krenn.com/de/wiki/Bash_sdtout_und_stderr_umleiten
Jedenfalls kannst Du anhand von $RETURNVAL herausfinden, ob rsnapshot ohne Fehler durch gelaufen ist.
Ich hab's gerade mal installiert, hier ein Beispiel auf der Kommandozeile:
samsung:~# RETURNVAL=$(rsnapshot 2>&1)
samsung:~# echo $RETURNVAL
rsnapshot 1.3.1 Usage: rsnapshot [-vtxqVD] [-c cfgfile] [command] [args] Type "rsnapshot help" or "man rsnapshot" for more information.
Zum Logfile: tail gibt die letzten 10 Zeilen der Datei aus, das kannst Du aber mit der -n Option ändern. Du muss es ausprobieren, führe den rsnapshot-Befehl mal auf der Kommandozeile so aus, dass ein Fehler passiert und schau Dir danach das Logfile an. Hänge soviele Zeilen an den Mailtext an, dass Du weißt was passiert ist. (Meistens reicht es ja, wenn Du weißt, dass es nicht geklappt hat, aber wenn der Rechner 100 km entfernt steht, dann ist es vielleicht sinnvoll wenn die Mail Dir sagt, dass Du vorher noch eine Festplatte kaufen musst
Markus