Nachdem cron hinzugefügt Fehlermeldung per Mail -> Cron läuft aber!

sTaN

New Member
Hallo Zusammen,

nach dem ich mittels crontab -e einen eigenen Job angelegt habe und die MAILTO Option hinzugefügt habe, erhalte ich immer wieder Mails mit dem Betreff des Cron-Jobs und dem Fehler /bin/sh: root: command not found.

Die crontab Datei sieht folgendermaßen aus:

Code:
SHELL=/bin/sh
PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin

# m h dom mon dow user  command
53 * * * * root cd / && run-parts --report /etc/cron.hourly
26 0 * * * root test -x /usr/sbin/anacron || ( cd / && run-parts --report /etc/cron.daily )
20 1 * * 7 root test -x /usr/sbin/anacron || ( cd / && run-parts --report /etc/cron.weekly )
2 5 3 * * root test -x /usr/sbin/anacron || ( cd / && run-parts --report /etc/cron.monthly )
0 0 * * * root rsync -avze ssh / name@domain.com:/verzeichnis
#

Wie gewollt wird mir mein gesamtes VServer Verzeichnis auf ein externes Share gesichert bzw. synchronisiert. Die Dateien werden auch täglich um 00:00 Uhr, wie im Job definiert abgeglichen.

Weshalb erhalte ich nun die Mails mit der Fehlermeldung?

1. Mail kommt stündlich:
Code:
Betreff: root cd / && run-parts --report /etc/cron.hourly
Inhalt: /bin/sh: root: command not found

2. Mail nachdem eigener Job anläuft:
Code:
Betreff: root rsync -avze ssh / name@domain.com:/verzeichnis
Inhalt: /bin/sh: root: command not found

Gruß,
sTaN
 
Last edited by a moderator:
Bei crontab -e bist du bereits als ein Benutzer beim Crondaemon markiert (deshalb immer darauf achten ob du mit dem richtigen User drin bist). Du musst/darfst im Cron dann keinen User, in deinem Fall "root" mehr angeben.
Das ist nur nötig, wenn du die Cronfiles manuell bearbeitest unter /etc/cron.d/. ;)
 
Wenn ich die Datei mit:

Code:
vi /etc/crontab

editiere muss ich den User angeben? Ist dabei noch etwas zu beachten?
Und wie sieht es mit den Einträgen über meinem hinzugefügtem Eintrag aus?
Muss ich dort den User root entfernen?

Des weiteren würde mich interessieren, ob ich mir Mails zu einzelnen cron-jobs schicken lassen kann.
Setze ich die Variable MAILTO=root am Anfang der Datei erhalte ich ja von jedem job eine Status Mail. Würde aber gerne nur von meinem Job eine Mail bekommen.

Einfach am Ende Mailto=root anfügen klappt nicht, aufgrund eines Syntax Fehlers.

Bin jetzt ein wenig verwirrt, wie ich nun den Cron am Saubersten anlege...

Gruß,
sTaN
 
mit crontab -e editierst du die crontab des aktuell angemeldeten Users (diese liegt IIRC unter /var/spool/cron/tabs und der Dateiname entspricht dem Usernamen) und in dieser existiert die Spalte mit dem User nicht, da alle Jobs unter dem User ausgeführt werden, dem diese Cron-Datei gehört.
DIe /etc/crontab ist die systemweite Cron-Datei - dort mußt du natürlich den User angeben, der den jeweiligen Cron-Job ausführen soll.
Mit dem MAILTO am Anfang der Cron-Datei gibst du lediglich an, wohin die Ausgaben der Cronjobs geschickt werden sollen, willst du diese für einen bestimmten Job nicht per Mail, mußt du sie nach /dev/null umleiten.
 
Back
Top