Crontabs werden mir seit neustem per Mail geschickt!

Cheecoh

New Member
Erledigt - Crontabs werden mir seit neustem per Mail geschickt!

Nach langer recherche und testen und rumprobieren komme ich nicht zur Lösung...

Seit dem ich mein System neu eingespielt habe bekomme ich Mails vom root@domain.tld (geschickt an web1@domain.tld) das ein Crontab ausgeführt wurde und welche Fehler etc. vorhanden sind..

Ich möchte aber das alle Cron-Warnings an ein anderes Postfach gehen z.b. web1p3 ( crons@domain.tld )..

Was ich bissher getan hab:
- Im Confixx vergeblich nach einer Einstellung gesucht wo ich dies machen könnte!
- /etc/crontab: MAILTO=web1p3 bzw. MAILTO="crons@domain.tld" testweise hinzugefügt
- /etc/init.d/cron reload jedes mal durchgeführt
- abgewartet ob die Cron-Warning an das andere Postfach geht, aber vergeblichst
- Habe geschaut ob ich für jeden User ne spezifische Crondatei habe via "locate cron" aber auch da vergeblich keine gefunden die Userspezifisch aussieht.
- cron -u web1 -l zeigt mir die Crons an, muss ich vielleicht es mit nem Befehl aktivieren?

Vorne weg ich möchte, wenn möglich, erstmal ne Lösung haben "ohne" das ich in dem Crontab was ändern muss...

Lieben Gruß und Frohe Ostern,
Cheecoh
 
Last edited by a moderator:
Hallo,

wenn ein Script eine Ausgabe erzeugt sendet dir der cron-Daemon die Ausgabe zu.
Die meisten Autoren von Scripten die durch den cron-Daemon aufgerufen werden sollen wissen das und lassen daher nur Fehler und Warnungen ausgeben. Wenn alles ohne Problem durchläuft kommt auch nix.

Die Email Adresse für die Ausgabe gibst du mit MAILTO an.

EDIT: Der MAILTO Befehl muss natürlich direkt im Cronfile des jeweiligen Benutzers stehen. Probiere mal crontab -u USER -e. Das -e steht für Edit.
 
Last edited by a moderator:
Hallo,

wenn ein Script eine Ausgabe erzeugt sendet dir der cron-Daemon die Ausgabe zu.
Die meisten Autoren von Scripten die durch den cron-Daemon aufgerufen werden sollen wissen das und lassen daher nur Fehler und Warnungen ausgeben. Wenn alles ohne Problem durchläuft kommt auch nix.

Mh.. auch wenn die Warnings im Script ausgestellt sind, bekomme ich dennoch ne Mail vom System aber mit leerem Inhalt.

Die Email Adresse für die Ausgabe gibst du mit MAILTO an.

Ist mir schon bekannt ;)

EDIT: Der MAILTO Befehl muss natürlich direkt im Cronfile des jeweiligen Benutzers stehen. Probiere mal crontab -u USER -e. Das -e steht für Edit.

Ich hab die Datei manuell editiert, hat aber nichts gebracht denn Confixx hat es wieder zurücküberschrieben..

Werde es aber natürlich auch mit deiner Variante probieren und gleich Bericht erstatten ob es geklappt hat..

//Edit:
Er öffnet mir eine andere Datei was ich ja schon mal Positiv fand, habe die geändert und es klappt nicht!
Hier mal ein ausschnitt aus der Datei:


Code:
        0       2       *       *       7       lynx -dump http://xxx$
        0       */4     *       *       *       lynx -dump http://xxx$
        30      *       *       *       *       lynx -dump http://xxx$
        17      *       *       *       *       lynx -dump http://xxx$

MAILTO="crons@xxxx.de"

Desweiteren sobald ich in Confixx irgendwas an den Crontabs änder ist das Mailto weg...
 
Last edited by a moderator:
Hier mal ein ausschnitt aus der Datei:


Code:
        0       2       *       *       7       lynx -dump http://xxx$
        0       */4     *       *       *       lynx -dump http://xxx$
        30      *       *       *       *       lynx -dump http://xxx$
        17      *       *       *       *       lynx -dump http://xxx$

MAILTO="crons@xxxx.de"

Klar klappt das nicht ;) MAILTO kann mehrfach gesetzt werden und somit ist das MAILTO am ende "nach" den Crons unbedeutend weil er dannach ja keine Befehle mehr hat...

Das MAILTO mal an anfang gesetzt klappt es!
Code:
MAILTO="crons@xxxx.de"
        0       2       *       *       7       lynx -dump http://xxx$
        0       */4     *       *       *       lynx -dump http://xxx$
        30      *       *       *       *       lynx -dump http://xxx$

Nun habe ich nur noch das Problem, das Confixx das MAILTO rausnimmt sobald ich irgendwas im Confixx an den Crontabs ändere / hinzufüge oder entferne ist dies aber weg...

Hat jemand ne Lösung?
 
Ich weiß nicht, welche Methode Confixx verwendet, aber es gibt für den Root-Benutzer ja mehrere Möglichkeiten, einen Cronjob einzurichten: a) in der globalen /etc/crontab (mit normalen Editor zu bearbeiten) oder b) in der "per Benutzer"-crontab (mit 'crontab -e' zu bearbeiten). Nimm einfach die Methode, die Confixx nicht verwendet ;)

Ansonsten sehen Deine Beispiele nicht so aus, als ob sie besondere Berechtigungen erfordern würden. Somit kannst Du einfach einen Benutzer anlegen ('useradd'), von dem Confixx nichts weiß und den Cronjobs für diesen Benutzer einrichten.
 
Somit kannst Du einfach einen Benutzer anlegen ('useradd'), von dem Confixx nichts weiß und den Cronjobs für diesen Benutzer einrichten.

Ich möchte ja keinen neuen benutzer anlegen dafür ;) Das soll ja übers Confixx gesteuert werden, da ich aber der Besitzer des Web1 Accounts bin.

Ich benutzer ja selbst den Web1 und hab jetzt für jemanden paar Crons hinterlegt und ich bekomme nun die meldungen...

Mein Hoster meinte, es gäbe auch von Confixx deren Seite standartmäßig keine möglichkeit das MAILTO übers Control Panel von Confixx einzustellen..

Somit bleibt mir nur die möglichkeit den Cron-Befehl zu ändern...

Ich danke für eure Hilfe..
 
Somit bleibt mir nur die möglichkeit den Cron-Befehl zu ändern...
...was ja leicht gemacht ist. Zum Beispiel:
Code:
#!/bin/bash

MAILTO="crons@mydomain.com"

# Job der bei Parameter "1" ausgeführt wird
doit1() {
        lynx --dump http://..... 2>&1 > /tmp/ausgabe1
}

# Job, der bei Parameter "2" ausgeführt wird
doit2() {
        lynx --dump http://......... 2>&1 > /tmp/ausgabe2                         
}

if [ "x$1" == "x" ]; then
        echo "Usage $0 <jobno>"
        exit 1
fi

if [ "$1" == "1" ]; then
        doit1 > /tmp/cronlog.$$
fi

if [ "$1" == "2" ]; then
        doit2 > /tmp/cronlog.$$
fi

if [ -s /tmp/cronlog.$$ ]; then
        mailx -s "Cron log" $MAILTO < /tmp/cronlog.$$
fi
rm -f /tmp/cronlog.$$
Verschickt Fehlermeldungen nur, wenn was schief gelaufen ist.
 
Ich dachte eher an ne simplere Variante wie:
lynx -dump http://url-zum-script.tld/ > /dev/null 2>&1

das ich keine meldung mehr bekomme :D

oder ich lass es in der crontab datei und muss nur drauf achten das wenn ich im confixx an den Cronjobs was mache ( was seltener passiert ) das ich es auch per shell wieder einfüge...

Lieben Gruß,
Cheecoh
 
Back
Top