linux debian crontab-Job wurde nicht ausgeführt

7

Ich habe ein Bash-Skript foo.sh , das sich im Verzeichnis /etc/cron.daily , 700-chmoded, befindet. Es gehört root, crontab-Liste für den root-Benutzer unverändert (crontab -l) von der Debian-Kerninstallation. Ich habe cronjob anders als crontab -l und / oder crontab -e ausgeführt (zB habe ich den cron-Daemon nicht mit /etc/init.d/cron neu gestartet, wie im konkreten Debian-Fall empfohlen). Trotz einer Test-Job-Datei läuft unter ähnlichen Bedingungen. Das Skript wird debuggt und kann als eigenständige Aufgabe ausgeführt werden, ohne dass Fehler zurückgegeben werden. Ich habe auch Protokolle überprüft (/ var / log / syslog) und nichts falsch darin.

Aber : Dieser spezielle Job wird überhaupt nicht ausgeführt.

    
hornetbzz 30.03.2011, 12:59
quelle

3 Antworten

13

Hoppla! Ich denke, ich fand das "warum" oder zumindest das "wie":

Nur das Umbenennen des Auftragsdateinamens ohne die Erweiterung ".sh" hat dieses Problem behoben.

Ich dachte, es wäre ein Debian-Bug, aber es ist nicht so, wie in den anderen Antworten unten beschrieben.

LÖSUNG: Benennen Sie Ihr Skript um, indem Sie alle . oder + Zeichen aus dem Namen entfernen

    
hornetbzz 30.03.2011, 13:01
quelle
8

Die Skripte von /etc/cron.daily werden von run-parts ausgeführt (siehe man 8 run-parts).

da gehst du mit einem snip von der manpage:

  

Wenn weder die Option --lbsysinit noch   die Option --regex wird dann angegeben   Namen müssen ausschließlich aus Oberteilen bestehen   und Kleinbuchstaben, Ziffern,   Unterstriche und Bindestriche.

von / etc / crontab können Sie sehen, dass die täglichen Cron-Jobs mit:

ausgeführt werden %Vor%

debian verwendet kein anacron und es gibt keine Option --lsbsinit, die für run-parts angegeben wurde (in diesem Fall wird '.' im Dateinamen des Cron-Skripts entsprechend den hierarchischen hierarchischen und reservierten Namespaces akzeptiert)

Um sicherzustellen, dass cron das Skript ausführt, können Sie immer run-parts ausführen und überprüfen, ob Ihr Skript in der run-parts-Ausgabe aufgelistet ist:

%Vor%

oder

%Vor%

Ich hoffe, mein Kommentar hilft Ihnen zu verstehen, was das eigentliche Problem war.

    
user237419 30.03.2011 13:14
quelle
0

Alle zuvor gegebenen Antworten sind gut und akzeptabel für die Frage. Ich glaube jedoch, dass ich meinen Punkt hinzufügen sollte, um klarzustellen, dass Debian Linux OS Dateinamen von Cron-Jobs nicht unterstützt, die das Zeichen . oder + enthalten. Siehe den relevanten Abschnitt im Debian Policy Manual .

Das ist nur um Verwirrung zu vermeiden, dass es kein Fehler ist. So funktioniert Debian.

    
miklosq 25.02.2014 18:37
quelle

Tags und Links