• Apfeltalk ändert einen Teil seiner Allgemeinen Geschäftsbedingungen (AGB), das Löschen von Useraccounts betreffend.
    Näheres könnt Ihr hier nachlesen: AGB-Änderung
  • Viele hassen ihn, manche schwören auf ihn, wir aber möchten unbedingt sehen, welche Bilder Ihr vor Eurem geistigen Auge bzw. vor der Linse Eures iPhone oder iPad sehen könnt, wenn Ihr dieses Wort hört oder lest. Macht mit und beteiligt Euch an unserem Frühjahrsputz ---> Klick

Cron Jobs laufen nicht

fablei

Gast
Hallo,
ich habe folgnedes Problem.

Ich habe in meiner /etc/crontab einige täglich wiederkehrende Befehle, die ausgeführt werden sollen. Leider passiert nix.

Die crons sind alle als root eingetragen.

Wo kann das Problem liegen?

Viele Grüße,
FAbian
 

Skeeve

Pomme d'or
Registriert
26.10.05
Beiträge
3.120
Wo kann das Problem liegen?
Obwohl meine Frau Druck macht, ist meine Kristallkugel immer noch nicht repariert. Also kann ich nur raten:
  • Keine Ausführrechte fürs Script
  • falscher Pfad
  • falsche Zeitangaben (es läuft zu anderen Zeiten als gedacht)
  • ...
Schau doch mal ob root Mail hat.
 
  • Like
Reaktionen: xgx7

fablei

Gast
Danke für die schnelle Antwort.

Das Skript ist ein einfacher Kopierbefehl zum Backup eines Ordners. (cp -r Quelle Ziel). Rechte sollte es dann also haben, oder? Wenn man das in der Shell eingibt läuft es wunderbar.

Root hat keine Mail.

Allerdings hat der /etc/crontab unter root mit ls -al nur folgende Rechte:
"-r--r--r--" Gruppe: wheel

Ist das korrekt?
 

MacMark

Jakob Lebel
Registriert
01.01.05
Beiträge
4.874
/etc/crontab hat - meines Wissens - ein Extra-Argument, das die anderen nicht haben:
minute hour mday month wday who command
Hast Du dort den User angegeben, unter dem es laufen soll?
 

fablei

Gast
Wie schon oben geschrieben:

Die Crons sind alle als root eingetragen.

FAbian
 

Skeeve

Pomme d'or
Registriert
26.10.05
Beiträge
3.120
zeig uns mal, was crontab -l ausspuckt
 

pepi

Cellini
Registriert
03.09.05
Beiträge
8.740
Eigentlich sollte man die /etc/crontab nicht direkt editieren sonder nur per crontab -e. Immerhin wird die crontab nicht mehr direkt vom cron sondern der cron vom launchd aufgerufen. Wahrscheinlich hat niemand den launchd davon in Kenntnis gesetzt.
Gruß Pepi
 

fablei

Gast
Hallo,
hier mal die /etc/crontab

Komisch ist übrigens, dass Crons die von mySql Admin gestartet werden ausgeführt werden? Diese sind allerdings einem anderen Nutzer zugeordnet.
Code:
# The periodic and atrun jobs have moved to launchd jobs
# See /System/Library/LaunchDaemons
#
# minute        hour    mday    month   wday    who     command
0       3       *       *       *       root    /etc/ccc.SqRWoKLK.txt >> /private/var/log/cccron.log ## CCC task: http_taeglich
0       2       *       *       *       root    cp -r /Volumes/Daten1/httpDaten/mystudy /Volumes/Daten2/http_backup/mystudy_`date +%m_%d_%y`
5       2       *       *       *       root    cp -r /Volumes/Daten1/httpDaten/moodle /Volumes/Daten2/http_backup/moodle_`date +%m_%d_%y`
10      2       *       *       *       root    cp -r /Volumes/Daten1/httpDaten/moodledata /Volumes/Daten2/http_backup/moodledata_`date +%m_%d_%y`
c1d8a:~ root#

Wie kann ich denn der launchd sagen das sie sich bitte mal um die crons kümmert?

Vielen Dank,
Fabian
 

MacMark

Jakob Lebel
Registriert
01.01.05
Beiträge
4.874
Hallo,
hier mal die /etc/crontab

Komisch ist übrigens, dass Crons die von mySql Admin gestartet werden ausgeführt werden? Diese sind allerdings einem anderen Nutzer zugeordnet.
Code:
# The periodic and atrun jobs have moved to launchd jobs
# See /System/Library/LaunchDaemons
#
# minute        hour    mday    month   wday    who     command
0       3       *       *       *       root    /etc/ccc.SqRWoKLK.txt >> /private/var/log/cccron.log ## CCC task: http_taeglich
0       2       *       *       *       root    cp -r /Volumes/Daten1/httpDaten/mystudy /Volumes/Daten2/http_backup/mystudy_`date +%m_%d_%y`
5       2       *       *       *       root    cp -r /Volumes/Daten1/httpDaten/moodle /Volumes/Daten2/http_backup/moodle_`date +%m_%d_%y`
10      2       *       *       *       root    cp -r /Volumes/Daten1/httpDaten/moodledata /Volumes/Daten2/http_backup/moodledata_`date +%m_%d_%y`
c1d8a:~ root#

Wie kann ich denn der launchd sagen das sie sich bitte mal um die crons kümmert?

Vielen Dank,
Fabian

Hast Du den Rechner neu gestartet nach dem Ändern? Möglicherweise wurde cron nicht aktiv als Dämon, weil die crontab beim Start leer war.

Ist Dein Rechner wach zu den angegebenen Zeiten? Wenn er im Ruhezustand ist, macht er keine cronjobs.
 

fablei

Gast
Hallo,
da es sich um einen Server handelt, ist er immer am laufen. Einen Neustert habe ich nicht gemacht, seitdem ich die Änderungen an der crontab mit Cronnix vorgenommen habe.

Kann ich den Crondaemon denn ohne Neustart des Systems neustarten?
 

fablei

Gast
Danke für die Antwort,
aber nun steht in meinem Terminal folgendes:

Code:
c1d8a:/ root# sudo cron
cron: can't lock /var/run/cron.pid, otherpid may be 80: Resource temporarily unavailable

Hat das was mit meinem Problem zu tun, oder mache ich einfach nur was falsch?

Gruß,
Fabian
 

MacMark

Jakob Lebel
Registriert
01.01.05
Beiträge
4.874
Du bist als root eingeloggt! Warum?

Als root kannst Du sudo weglassen und einfach "cron" aufrufen.
 

slowfranklin

Gast
cron checkt von alleine minütlich alle cronfiles.

-Ralph
 

MacMark

Jakob Lebel
Registriert
01.01.05
Beiträge
4.874
Da cron und andere seit 10.4 von launchd ersetzt werden: Warum probierst Du es nicht mit launchd? ;)
 

Marcel Bresink

Hadelner Sommerprinz
Registriert
28.05.04
Beiträge
8.560
Es kann sehr gute Gründe dafür geben, launchd nicht zu benutzen und stattdessen die /etc/crontab direkt zu verändern. Das ist auf einem Server vor allem die einfachste und bequemste Lösung.

Der Fehler ist höchstwahrscheinlich, dass das Programm "cp" nicht gefunden wird. Du kannst nicht davon ausgehen, dass cron Programme in bestimmten Umgebungen oder Shells startet. Deshalb sind keine Suchpfade voreingestellt. Das könnte sonst auch zu erheblichen Sicherheitsproblemen führen.

Versuche bitte, die Angabe "cp" durch die vollständige Angabe /bin/cp zu ersetzen.