GNU/Linux >> LINUX-Kenntnisse >  >> Linux

Machen Sie diese Cron-Job-Fehler?

Frage: Warum wird mein Cron-Job nicht zur angegebenen Zeit ausgeführt?

Antwort: Es kann viele Gründe geben, warum ein Cron-Job nicht ausgeführt wird. Sehen wir uns 5 wichtige Gründe dafür an, warum ein Cron-Job nicht zur angegebenen Zeit ausgeführt wird, und wie diese Probleme behoben werden können.

1. Fehlinterpretation des Zeitfelds und Angabe falscher Werte.

Fehlinterpretation des Zeitfelds und angegebene Werte im Zeitfeld, die die erwartete/beabsichtigte Zeit nicht erwähnen.

Um beispielsweise einen Befehl um 20:00 Uhr auszuführen, sollten Sie die Uhrzeit im 24-Stunden-Format angeben. D.h. 20:00 Uhr ist 20 und nicht 8, wie unten gezeigt.

0 8 * * * /home/ubuntu/full-backup
[Note: The is wrong for 8 p.m]
0 20 * * * /home/ubuntu/full-backup
[Note: This is correct for 8 p.m]

Lesen Sie unser Tutorial Linux Crontab:15 Awesome Cron Job Examples, um ein tiefes Verständnis für Crontab zu bekommen. Einer unserer regelmäßigen Leser, Binny, hat eine Weboberfläche erstellt, die Cron-Einträge generiert, wenn Sie geeignete Werte für verschiedene Crontab-Felder in der Benutzeroberfläche auswählen.

2. Ungültiger Pfad zu Shell-Skript oder Befehlen in crontab

Stellen Sie sicher, dass der vollständige Pfad zum Shell-Skript in der Crontab angegeben ist.

0 8 * * * tape-backup
[Note: Invalid. No full path specified]

0 8 * * * /home/debian-os/bin/tape-backup
[Note: Valid. This is correct with full path]

Hinweis: Wenn Sie in der Crontab keinen vollständigen Pfad angeben möchten, stellen Sie sicher, dass Sie die PATH-Variable in der Crontab hinzufügen (Beispiel Nr. 14)

3. Keine Ausführungsberechtigung für das Shell-Skript in Cron

Möglicherweise haben Sie den richtigen Befehl mit dem richtigen Pfad angegeben, aber der Befehl hat möglicherweise keine Ausführungsberechtigung. Wenn Sie Unix-Standardbefehle verwenden, wird standardmäßig die Ausführungsberechtigung festgelegt.

Wenn Sie jedoch einige benutzerdefinierte Befehle (Shell-Skripte) verwenden, stellen Sie sicher, dass Sie ihnen wie unten gezeigt die Ausführungsberechtigung erteilen.

*/15 * * * * /home/fedora-os/check-disk-space
[Note: Executes check-disk-space every 15 minutes]

# cd /home/fedora-os
# chmod u+x check-disk-space

4. %age im Cron-Job-Befehl oder Shell-Skript

Wenn ein Befehl ein % enthält, wird Ihr Befehl nicht ausgeführt. Lesen Sie unsere vorherigen FAQ zu Crontab-Prozentproblemen, um zu erfahren, wie Sie dieses Problem beheben können.

5. Ausführen von Cron-Jobs durch Sysadmin nicht erlaubt

Ein Systemadministrator kann entscheiden, welcher Benutzer Cron-Jobs ausführen darf und welche Benutzer nicht. Um also einem Benutzer die Ausführung eines Cron-Jobs zu verweigern, hat der Systemadministrator möglicherweise Ihren Benutzernamen in die Datei /etc/cron.deny eingefügt.

Wenn Sie Root-Rechte haben, überprüfen Sie die Datei /etc/cron.deny, um sicherzustellen, dass Ihr Name dort nicht aufgeführt ist. Wenn es aufgeführt ist, bearbeiten Sie die Datei und entfernen Sie Ihren Namen. Wenn Sie keine Root-Berechtigung haben, wenden Sie sich an Ihren Systemadministrator.


Linux
  1. Wie richte ich einen Cron-Job ein, um jede Stunde eine ausführbare Datei auszuführen?

  2. Testen Sie einen wöchentlichen Cronjob

  3. Linux:Cronjob im Vordergrund ausführen

  4. Protokolldateien mit Cron-Job entfernen

  5. Cron-Job läuft manchmal nicht

So richten Sie einen Cron-Job in cPanel ein

Cron-Job im Plesk Panel einrichten

Einrichten eines Cron-Jobs in cPanel

Wie richte ich einen Cron-Job bei Hostinger ein?

Was ist ein Cronjob unter Linux

Linux Crontab:15 fantastische Cron-Job-Beispiele