Der häufigste Grund, warum ich gesehen habe, dass cron in einem falsch angegebenen Zeitplan versagt. Es ist üblich, 15 23 * * *
anstelle von * * 11 15 *
oder einen Job anzugeben, der für 23:15 Uhr geplant ist 11 15 * * *
. Wochentag für Jobs nach Mitternacht wird auch verwirrt MF ist 2-6
nach Mitternacht nicht 1-5
. Bestimmte Daten sind in der Regel ein Problem, da wir sie nur selten verwenden und * * 3 1 *
nicht am 3. März. Wenn Sie sich nicht sicher sind, überprüfen Sie Ihre Cron-Zeitpläne online unter https://crontab.guru/ .
Wenn Sie mit verschiedenen Plattformen arbeiten und nicht unterstützte Optionen verwenden, z. B. 2/3
Zeitangaben, kann dies ebenfalls zu Fehlern führen. Dies ist eine sehr nützliche Option, die jedoch nicht allgemein verfügbar ist. Ich bin auch auf Probleme mit Listen wie 1-5
oder gestoßen 1,3,5
.
Die Verwendung nicht qualifizierter Pfade hat ebenfalls Probleme verursacht. Der Standardpfad ist normalerweise /bin:/usr/bin
so, dass nur Standardbefehle ausgeführt werden. Diese Verzeichnisse haben normalerweise nicht den gewünschten Befehl. Dies betrifft auch Skripte, die nicht standardmäßige Befehle verwenden. Andere Umgebungsvariablen können ebenfalls fehlen.
Das Klopfen einer vorhandenen Crontab hat mir Probleme bereitet. Ich lade jetzt von einer Dateikopie. Dies kann aus der vorhandenen Crontab mit wiederhergestellt werden, crontab -l
wenn es verstopft wird. Ich behalte die Kopie von crontab in ~ / bin. Es ist durchgehend kommentiert und endet mit der Zeile # EOF
. Dies wird täglich von einem Crontab-Eintrag wie folgt nachgeladen:
#! / usr / bin / crontab
# Crontab neu laden
#
54 12 * * * $ {HOME} / bin / crontab
Der obige Befehl reload basiert auf einer ausführbaren crontab mit einem Bang-Pfad, auf dem crontab ausgeführt wird. Einige Systeme erfordern die Ausführung von crontab im Befehl und die Angabe der Datei. Wenn das Verzeichnis über ein Netzwerk freigegeben ist, verwende ich häufig crontab.$(hostname)
den Namen der Datei. Dies korrigiert schließlich Fälle, in denen die falsche Crontab auf dem falschen Server geladen ist.
Durch die Verwendung der Datei wird eine Sicherungskopie der Crontab erstellt, und temporäre Änderungen (die einzige Zeit, die ich verwende crontab -e
) können automatisch zurückgesetzt werden. Es stehen Header zur Verfügung, mit deren Hilfe die Planungsparameter richtig eingestellt werden können. Ich habe sie hinzugefügt, wenn unerfahrene Benutzer eine Crontab bearbeiten würden.
In seltenen Fällen stoße ich auf Befehle, die Benutzereingaben erfordern. Diese schlagen unter crontab fehl, obwohl einige mit der Eingabeumleitung funktionieren.
crontab -e
damit der Cron wirksam wird. Zum Beispiel mit vim bearbeite ich die Datei und verwende sie:w
zum Schreiben, aber der Job wird erst dann zu cron hinzugefügt, wenn ich ihn auch beende. Also werde ich den Job erst sehen, nachdem ich ihn:q
auch habe.