Eine ziemlich häufige Frage für geplante Aufgaben, die im Hintergrund ausgeführt werden, lautet:„Laufen sie?“ Diese Aufgaben, allgemein bekannt als Cron-Jobs, sind Aufgaben, die für Wartung, Sicherungen und andere funktionale Anforderungen für die Website und den Server automatisch ausgeführt werden müssen.
Um festzustellen, ob Ihre Cron-Jobs ausgeführt werden, müssen Sie zwischen der Planung der Aufgaben (der Crontab) und den eigentlichen Aufgaben selbst (den Cron-Jobs) unterscheiden. Cron-Jobs, die keine Ausgabeergebnisse erzeugen, erfordern, dass Sie sich mit den Serverprotokollen vertraut machen. Nachdem Sie die Ergebnisse der Serverprotokolle ermittelt haben, können Sie Fehler bei Cron-Jobs beheben, die nicht ausgeführt werden. Sie können ein Skript auch so ändern, dass es eine Ausgabe erzeugt, die anzeigt, dass es ausgeführt wird.
Der folgende Artikel hilft Ihnen, zwischen einem Crontab und einem Cron-Job zu unterscheiden, zwei Möglichkeiten, wie Sie sehen können, wann ein Cron-Job ausgeführt wird, und wie Sie Fehler bei Cron-Jobs beheben können, die nicht ausgeführt werden.
- Den Unterschied zwischen Crontab und Cron-Job verstehen
- Zwei Möglichkeiten, um zu sehen, ob Ihr Cronjob ausgeführt wird
- Fehlerbehebung bei einem Cronjob
HINWEIS:Um diese Funktion auszuführen, benötigen Sie Root-Zugriff auf Ihren VPS oder dedizierten Server.
Unterschied zwischen Crontab und Cron-Job
Um Verwechslungen zwischen einem unerfahrenen Administrator und einem Entwickler oder erfahrenen Serveradministrator zu vermeiden, ist es wichtig, die Bedeutung der Begriffe „crontab“ und „Cronjob“ zu verstehen.
Wenn Sie nach „Cronjobs planen“ suchen, finden Sie den Begriff crontab definiert oder beschrieben mit kaum einer Einführung. Der Begriff crontab ist die Abkürzung für „cron table“ und ist ein Linux-Befehl zum Planen von Cron-Jobs. Die crontab ist auch die eigentliche Textdatei, die die Zeitplanung für Cronjobs enthält.
Ein Cronjob ist ein tatsächlicher Code oder ein Skript, das Sie versuchen, zu einem bestimmten geplanten Zeitpunkt im Hintergrund auszuführen. Der Linux-Befehl für einen Cron-Job ist einfach cron .
Wenn Sie also jemand fragt, wie ein Cron-Job in der Crontab geplant wird, wissen Sie, dass er sich auf die Zeit- und Häufigkeitsinformationen bezieht, die auf den Cron-Job in der als Crontab bekannten Textdatei angewendet werden.
Für cPanel-Zwecke können Crontab und Cron-Job direkt in der cPanel-Oberfläche auf den Cron-Jobs bearbeitet werden Seite. Hier sehen Sie den oberen Teil der Cron Jobs Seite:
Wenn Sie Cronjobs haben, sehen Sie diese am Ende der Cronjobs Seite. Sie sehen das Timing für den Cron-Job (aus der Crontab-Datei) sowie den Code für den Cron-Job. Auf dieser Seite können Sie Cronjobs und die entsprechenden Zeitpläne hinzufügen, bearbeiten und löschen. So sieht der untere Abschnitt aus:
Anhand der in cPanel bereitgestellten Crontab-Informationen können Sie bestimmen, wann ein Cron-Job ausgeführt werden sollte. In einigen Fällen generieren Cron-Jobs keine Ausgabe, daher ist es wichtig, dass Sie sich mit den generierten Protokolldateien und deren Suche vertraut machen.
2 Möglichkeiten, um zu sehen, ob Ihr Cron-Job ausgeführt wird
Überprüfen der Protokolldateien
In diesem Beispiel durchsuchen wir das crontab-Protokoll nach dem fiktiven Dateinamen script.sh . Der Befehl, der üblicherweise verwendet wird, um nach Dateien oder Zeichen in einem bestimmten Muster zu suchen, ist grep . Dieser Terminalbefehl kann verwendet werden, um die Protokolldatei nach Instanzen zu durchsuchen, wenn „script.sh“ ausgeführt wird. Dies ist der Befehl, der verwendet wird, um in der Cron-Protokolldatei nach „script.sh“ zu suchen:
grep „script.sh“ /var/log/cron
Wenn Sie in der Protokolldatei nach einem anderen Skript oder Begriff suchen würden, ersetzen Sie einfach „script.sh“ durch den Namen Ihrer Skriptdatei oder Textzeichenfolge, die Sie im Protokoll zu finden versuchen.
Mit dem grep-Befehl können Sie das Protokoll anzeigen, um zu sehen, wann das spezifische Skript im Cron-Job zuletzt ausgeführt wurde. Wenn der Cron-Job keine sichtbare Ausgabe erzeugt, müssen Sie überprüfen, ob der Cron-Job tatsächlich stattgefunden hat.
Beispielsweise können Sie sehen, wann zuletzt ein Cron-Job zum Löschen des Caches ausgeführt wurde. Sie würden dann prüfen, ob der Cache geleert ist, indem Sie sehen, ob der Cache leer ist oder nicht. Hier ist ein Beispiel dafür, wie ein Cronjob ausgeführt wird, indem Sie das Protokoll überprüfen:
Das Protokoll zeigt an, wann die Datei ausgeführt wurde. Bitte lesen Sie unser Tutorial, wenn Sie Informationen zum Zugriff auf das Terminal über cPanel benötigen.
Ausgabe in einem Skript verwenden, um einen laufenden Cron-Job anzuzeigen
Der einfachste Weg, um festzustellen, ob ein Cron-Job (mit seinen Crontab-Einstellungen) funktioniert, besteht darin, einen vorhandenen Cron-Job so zu bearbeiten, dass er eine sichtbare Ausgabe erzeugt. Sie können Ihrem vorhandenen Skript eine Codezeile hinzufügen, um ein Ergebnis auszugeben, wenn das Skript ausgeführt wird. Wenn das Ergebnis dieses Befehls eine Ausgabe erzeugt, können Sie diese Ausgabe verwenden, um zu bestätigen, dass Ihr Cron-Skript ausgeführt wird.
Die Änderung eines Cron-Job-Skripts sollte nicht von einem Benutzer durchgeführt werden, der mit dem auszuführenden Code oder Skript nicht vertraut ist. Da Cron-Jobs auf viele verschiedene Arten geschrieben werden können, müssen Sie möglicherweise mit einem erfahrenen Entwickler sprechen, um Probleme mit Ihrer Website zu vermeiden.
Fehlerbehebung bei Cronjobs
Wenn Sie keine Aktivität im Crontab-Protokoll sehen oder wenn Sie keine E-Mail bezüglich der Cron-Aktivität erhalten (für Cron-Jobs mit einer Ausgabe), sollten Sie zuerst nachsehen Überprüfen Sie noch einmal, ob die Zeitparameter für den Cron-Job korrekt sind. Dies hilft bei der Bestimmung, ob (und wann) der Cron ausgeführt werden soll, damit Sie mögliche Probleme richtig beheben können.
Wenn Sie immer noch ein Problem mit dem Cronjob vermuten, dann gibt es normalerweise 3 Möglichkeiten, warum er nicht läuft:
- Der Cron-Daemon (der Systemprozess, der Cron-Jobs ausführt) konnte das Skript nicht ausführen oder keine E-Mail senden
- Es gab Probleme mit dem Mailserver, der die Ausgabe versendete, oder die E-Mail ging verloren
- Der Cron-Job hat keine Ausgabe oder Fehlermeldung erzeugt
In allen drei Fällen schlägt der Cron-Job stillschweigend fehl. Mit anderen Worten, es gibt kein sichtbares Ergebnis des laufenden Cron-Jobs.
Bei der ersten Möglichkeit müssen Sie das Systemprotokoll auf dem Webserver überprüfen, um nach Fehlern zu suchen, die möglicherweise während der versuchten Ausführung des Cron-Jobs aufgezeichnet wurden. Sie können dann die Fehlermeldung verwenden, um zu isolieren, wo das Cron-Job-Skript möglicherweise fehlschlägt, und die erforderlichen Korrekturen vornehmen.
Möglicherweise müssen Sie auch das Protokoll des Mailservers durchgehen, um zu überprüfen, ob nach Abschluss des Cron-Jobs versucht wurde, eine E-Mail zu senden. Denken Sie daran, dass die angegebene E-Mail-Adresse oben auf der Cron-Job-Seite in cPanel eingestellt ist. Sie können die E-Mail-Adresse verwenden, um die E-Mail-Versuche im Mailserver-Protokoll zu isolieren.
Sie würden auch das Protokoll des Mailservers überprüfen, wenn Sie die Aufzeichnung des Cron-Jobs sehen, der ausgeführt wird, aber keine erwartete E-Mail. E-Mails werden bei erfolgreichem Abschluss von Cron-Jobs mit einer Ausgabe gesendet.
Bei der dritten Möglichkeit müssen Sie Ihrem Cron-Job Code hinzufügen, damit er eine leicht nachverfolgbare Ausgabe erzeugt, um zu überprüfen, ob er ausgeführt wird.
Wenn Sie sich nicht sicher sind, wie Sie Mailserver-Protokolle überprüfen können, wenden Sie sich an den technischen Support Ihres Hosting-Dienstes oder arbeiten Sie mit einem erfahrenen Administrator zusammen, um die Protokolle zu verwenden, die Ihnen helfen, Probleme im Zusammenhang mit dem Mailserver zu identifizieren.
Es gibt viele Möglichkeiten, wie ein Cron-Job fehlschlagen kann. Wenn Sie sich nicht sicher sind, wie Cron-Jobs codiert werden, wenden Sie sich an einen erfahrenen Entwickler, der Ihnen hilft, Korrekturen vorzunehmen oder den Code für Fehlerbehebungszwecke zu ändern.
Sie können unsere vollständige Anleitung zum Einrichten von Cron-Jobs in cPanel lesen, wenn Sie weitere Informationen zu diesem Thema benötigen.
Stellen Sie mit unserem optimierten verwalteten VPS-Hosting sicher, dass Ihre Geschäfts-, Agentur- oder Wiederverkäuferkunden immer verbunden und eingeschaltet sind.