Cron job – Mail abschalten

Je nach Einstellung sendet jeder Cronjob nach der Ausführung eine Mail an den Besitzer des Cronjob mit der Ausgabe des Bildschirminhaltes. Dies kann ein gewünschtes Verhalten sein, oder auch als sehr lästig angesehen werden. Gerade wenn ein Job vielleicht jede Minute ausgeführt wird, muss diese Mail unterdrückt werden.

Wer zum Beispiel seine Serververwaltung mit Plesk erledigt, wird feststellen, dass je nach Version und Installation diese Mail gesendet wird – oder nicht. Etliche Plesk-Installationen unter Plesk 9.x, die ich betreue, senden keine Mail, eine neue Installation unter Plesk 10.x mutiert munter zur „Spamschleuder“.

Cron Job: Don´t send emails of Cronjob
Die einfachste Möglichkeit, die Mail abzuschalten, ist sie einfach zu unterdrücken. Dies funktioniert auch unter Plesk (Plesk Control pannel), da diese Definition einfach bei der Anlage des Cronjobs getroffen wird. Es ist kein weiterer Eingriff in die Serverkonfiguration erforderlich. Das Geheimnis liegt im „unterdrücken“ der Mail mittels „> /dev/null 2>&1“
Hängen Sie diese Zeichenfolge einfach an jede Befehlzeile an. Ein Job lautet dann beispielsweise wie folgt:

30 * * * * /root/mein-ordner/mein-skript.sh > /dev/null 2>&1

Für Plesk-Nutzer: In der Befehlzeile den Aufruf (hier: „/root/mein-ordner/mein-skript.sh“ um die Zeichenkette „ > /dev/null 2>&1“ erweitern.

Cron Job: Mail generell abschalten
Die oben beschriebene Methode bedingt, das Ziel „dev/null“ an jede Cronjob-Zeile manuell anzuhängen. Dies funktioniert, doch kann bei vielen Cronjobs aufwändig sein. Auch werden viele Unix-Freaks dies als „unsauber“ bezeichnen.
Um das Mail generell abzuschalten, empfiehlt es sich, die „MAILTO“-Variable zu bearbeiten. Diese Variable wird in der Crontab definiert. Um dies zu ändern oder zu überprüfen, öffnet man die richtige Crontab (auf den (Login)User achten!) über die Shell mit

# vi /etc/crontab
   oder
$ crontab -e

(Hinweis:  „-e“ bedeutet Edit=Ändern, „-l“ kann mit „lesen“ bezeichnet werden)

In der ersten Zeile sollte in der enstprechenden Crontab folgende Zeile vorhanden sein:

MAILTO=meinuser@domain.tld

Um die Mail generell abzuschalten, muss man einfach die Email-Adresse durch „“ ersetzen:

MAILTO=""

Mit dem Speichern der Crontab (Je nach Editor: ESC, „:qw1“) sendet kein Cronjob dieser Crontab mehr eine Mail.

Cronjob-Logfile: Mail in ein Logfile umleiten
Wer auf die Daten der Mail nicht verzichten, aber von Email verschont bleiben möchte, der kann die Ausgabe in ein Log umleiten. Dies kann für die Nachverfolgung und Fehlersuche sehr wichtig sein. Und so leitet man die Cronjob Email in ein Logfile um:

30 * * * * /root/mein-ordner/mein-skript.sh > /home/mein-user/cronlogs/logfile-name.log

1 Gedanke zu „Cron job – Mail abschalten“

  1. Danke für die Info. Mein Problem: Plesk hat mehrere Cronjobs eingerichtet und einer nervt durch Hinweise, die ich nicht haben will. Wie finde ich den passenden Cronjob? Ich habe via Putty shell Zugriff und kann die Crontab bearbeiten. Aber in der Mail, die dauernd kommt, steht nur etwas kryptisch: „The IP ***.**.**.*** was already used for a trial license on …“ – d.h. kein Hinweis auf den konkreten Cronjob im Text der Mail.

    Antworten

Schreibe einen Kommentar