• Willkommen im Linux Club - dem deutschsprachigen Supportforum für GNU/Linux. Registriere dich kostenlos, um alle Inhalte zu sehen und Fragen zu stellen.

[Gelöst] Cron job wird nicht ausgeführt... (ich habe gesucht

AlexDausF

Member
Hallo!

Ich weiss das es das Thema schon gab, aber ich kann mein Problem anhand der Beiträge nicht lösen. Ich habe schon mehrere Möglichkeiten probiert. Ich verwende übrigens Suse 10.0. Meine Crontab sieht folgendermaßen aus:

/hda1/etc/crontab:

SHELL=/bin/sh
PATH=/usr/bin:/usr/sbin:/sbin:/bin:/usr/lib/news/bin
MAILTO=root
#
# check scripts in cron.hourly, cron.daily, cron.weekly, and cron.monthly
#
-*/15 * * * * root test -x /usr/lib/cron/run-crons && /usr/lib/cron/run-crons >/dev/null 2>&1


*/10 * * * * root /usr/bin/faxrunq


Um die letzte Zeile gehts. Es passiert leider nichts. :(
Ich habe es auch unter /var/spool/cron/tabs/alex versucht. Leider auch nichts. Wie kann ich weiter vorgehen?
Woran liegt es, dass der Job nicht ausgeführt wird?

Danke und Gruss!

Alex
 

admine

Ultimate Guru
Typischerweise gibt cron Fehlermeldungen nach "mail" aus.
Also bei einer root-Crontab nach /var/mail/root

Findest du da Anhaltspunkte?

Btw. funktioniert "faxrunq" ohne Cron-Job ?
 
OP
A

AlexDausF

Member
Hallo Admine!

Jo in der Konsole gehts! Eingeben und schon legt das Modem los.. :roll:
Wegen mail. Ich habe die Mails gelesen. Da sind nur die Erfolge per Konsole verzeichnet und die Probleme als ich es als User versuchte. Leider aber nichts seit dem ich den Cronjob versuche zum Laufen zu kriegen. :cry:

Vielen Dank aber!

Alex
 
/etc/crontab ist nicht dafür vorgesehen einfach so etwas einzutragen.
Lösche deine Zeilen dort wieder.

Ruf dann mal mit "crontab -e" den Editor für cron auf und trage dort deine Tasks ein.
Beim Verlassen des Editors sorgt "crontab -e" auch dafür das der Cron-Daemon die neue Datei einliest.
Vermute dass ist dein Problem.

Haveaniceday
 
OP
A

AlexDausF

Member
Danke für den Hinweis Haveaniceday!

Leider ist der Editor sehr schwer zu bedienen ich werde mal nachsehen wie der geht.

Besten Dank!

Alex
 
Ich glaube man kann export EDITOR=... setzen und dann geht auch ein anderer
Editor für crontab -e.
Hab ich aber noch nie probiert.

Haveaniceday
 
Oder es doch in die crontab eintragen von Hand und cron einmal stoppen und neu starten... (wars rccrond stop bzw. rccrond start? )
 
OP
A

AlexDausF

Member
Hallo!

Vielen Dank für die Tips! Ich habe das mal mit vi (Danke Admine!) und mit den anderen Editoren versucht. Pico z.B. funktioniert etwas "intuitiver" :wink:
Also crontab -e dann meine Zeile eingefügt.
Naja aber das wird nur in /tmp/crontab.xxxxx gespeichert. Wo muss ich das hinspeichern?

Es taucht auch nichts in den Crontab unter /etc oder unter /var/spool/cron auf .

Habe ihr eine Idee wo ich das hinspeichern muss?
@ haveaniceday:
Beim Verlassen des Editors sorgt "crontab -e" auch dafür das der Cron-Daemon die neue Datei einliest.
Kann ich das irgendwie überprüfen?

Besten Dank!

Alex
 
OP
A

AlexDausF

Member
Ha! Jetzt habe ich eine Fehlermeldung! Wow! :D

no crontab for root - using an empty one
crontab: no changes made to crontab

Tja! Dann funktioniert es nicht. War übrigens dasselbe als ich es mit dem User probiert habe.

Dann habe ich noch ein Verzeichnis /var/spool/cron/tabs/root/ erstellt. Und dann nochmal probiert: Dann kam

crontab: no changes made to crontab

Jetzt würde ich gerne wissen wie ich das anlegen kann. Ich habe es übrigens auch nach /var/spool/cron/tabs/alex/ geschrieben (danke Admine!) da hatte ich keine Berechtigung.

Wie kann ich erreichen dass er das auch in crontab übernimmt?

Vielen Dank an alle!

Alex
 

admine

Ultimate Guru
Sry, da hab ich mich wohl etwas unkorrekt ausgedrückt.
Der Cron-Job wird in /var/spool/cron/tabs erstellt und hat den Filenamen des jeweiligen Users.
Somit stehen root-cronjobs im File /var/spool/cron/tabs/root

Und bei Verwendung von "crontab -e" sollte es genau dieses File unter /var/spool/cron/tabs/ anlegen ... ohne dass du dazu zuvor etwas tun musst (meist jedenfals)
 
OP
A

AlexDausF

Member
Hallo!

Ja genau. Ich habe es verstanden und bekomme:

alex@linux:~> su
Password:
linux:/home/alex # cd /var/spool/cron/tabs/
linux:/var/spool/cron/tabs # crontab -l
# DO NOT EDIT THIS FILE - edit the master and reinstall.
# (root installed on Tue Feb 21 17:23:34 2006)
# (Cron version V5.0 -- $Id: crontab.c,v 1.12 2004/01/23 18:56:42 vixie Exp $)
# DO NOT EDIT THIS FILE - edit the master and reinstall.
# (fax installed on Tue Feb 21 17:22:23 2006)
# (Cron version V5.0 -- $Id: crontab.c,v 1.12 2004/01/23 18:56:42 vixie Exp $)
*/10 * * * * root /usr/bin/faxrunq
linux:/var/spool/cron/tabs #


Na das ist doch ein Fortschritt. Leider ist aber noch nichts passiert..... :cry:

Jetzt sollte er aber doch mal machen! 10 Min sind schon lange um. Muss da sowas stehen /bin/bash???

Gruss Alex
 
Die Datei musst du bei crontab -e nirgendwo abspeichern.
Das macht crontab für dich.

Einfach den Editor mit "Speichern", z.b. :wq bei vi, beenden.
Nach dem Speichern wird sogar ein kleiner Syntaxcheck durchgeführt.

Schau dir mal "man crontab" an.
Wenn du ein spezielles File als crontab haben willst:

crontab "filename"

Haveaniceday

PS: Schau mal mit "ps -ef | grep cron" ob /usr/sbin/cron überhaupt
gestartet wurde und läuft.
 
OP
A

AlexDausF

Member
Hallo!

Hier die Ausgabe:

alex@linux:~> ps -ef | grep cron
root 5409 1 0 10:00 ? 00:00:00 /usr/sbin/cron
alex 11980 11971 0 20:21 pts/1 00:00:00 grep cron

Ich habe es gespeichert unter /var/spool/cron/tabs/

Soll ich das wieder wegmachen? Ist denn meine Ausgabe oben zu crontab -l OK?

Danke! Alex
 
OP
A

AlexDausF

Member
Hallo!

Ich bin den ganzen Prozess nochmal durchgegangen:
linux:/home/alex # crontab -e
crontab: installing new crontab
linux:/home/alex # crontab -l
# DO NOT EDIT THIS FILE - edit the master and reinstall.
# (/tmp/crontab.XXXXLlAqAk installed on Tue Feb 21 20:46:54 2006)
# (Cron version V5.0 -- $Id: crontab.c,v 1.12 2004/01/23 18:56:42 vixie Exp $)
# DO NOT EDIT THIS FILE - edit the master and reinstall.
# (fax installed on Tue Feb 21 17:22:23 2006)
# (Cron version V5.0 -- $Id: crontab.c,v 1.12 2004/01/23 18:56:42 vixie Exp $)
*/10 * * * * root /usr/bin/faxrunq


Das sollte doch gehen jetzt oder? 8)
Habe nun auch nichts mit dem Dateinamen rumgepfuscht....

Vielen Dank!

Alex
 
Ich bin mir nicht sicher ob es im persönlichen Cronfile so heissen müsste:
*/10 * * * * /usr/bin/faxrunq

Ich weiss nicht unter welchen Umständen man den Usernamen angeben darf.
Falls das dort nicht klappt würde "root ..." aufgerufen.
Schau mal als root mit "cat /var/log/message | grep cron"
ob dort etwas steht.

Haveaniceday
 

admine

Ultimate Guru
Das sieht IMHO richtig gut aus.
Eventuelle Fehlermeldungen sind nun auch in /var/mail zu finden ... wenn denn welche kommen sollten ;)
 
OP
A

AlexDausF

Member
Hallo!

Hier die Ausgabe:
linux:/home/alex # cat /var/log/message | grep cron
cat: /var/log/message: Datei oder Verzeichnis nicht gefunden

Der Befehl su sollte doch reichen oder?
Leider läufts nicht. Ich verstehe es überhaupt nicht.
Das sollte doch eigentlich sofort senden. :roll:

Vielen Dank aber für Eure Tips!

Alex
 
Oben