Wann wird ein cron-Job das nächste Mal gestartet

Der Dienst cron wird auf vielen Unix-Systemen ausgiebig verwendet. Die Möglichkeiten anzugeben, wann ein Kommando mittels cron gestartet werden soll, sind vielfältig. Hier erst mal einige Beispiel-Zeilen aus einer möglichen crontab eines Benutzers:

5 0 * * * /usr/local/bin/daily.job
15 14 1 * * /usr/local/bin/monthly.job
0 22 * * 1-5 /usr/local/bin/weekdays.job

Die Korn-Shell 93 (auf vielen Systemen als ksh93 verfügbar) bietet eine einfache Möglichkeit den nächsten Start eines cron-Jobs anzeigen zu lassen, und zwar mittels der eingebauten Funktion printf und der Format Angabe %T für Datumsausgaben:

ksh93 $ printf "%T\n" "5 0 * * *"
Fr 19 Jan 00:05:00 2018

Man verwendet als erstes Argument im Format-String das %T für Datum und gibt im entsprechenden Argument (hier das zweite) die Intervall-Angabe aus dem crontab-Eintrag an. Das Resultat ist in diesem Fall der Zeitpunkt wann der Job daily.job aus dem Beispiel oben das nächste Mal gestartet wird.

Hier ein Beispiel für den zweiten Job monthly.job:

ksh93 $ printf "monthly.job: %T\n" "15 14 1 * *"
monthly.job: Do 1 Feb 14:15:00 2018

Arbeitet man nicht in der ksh93 selbst, dann kann man die folgende Variante nutzen:

bash $ ksh93 -c 'printf "%T\n" "0 22 * * 1-5"'
Do 18 Jan 22:00:00 2018

Hinweis: Auf einigen Systemen ist die Korn-Shell 93 als ksh verfügbar. Das kann man mit dem folgenden Kommando überprüfen:

$ ksh
$ print ${.sh.version}
Version AJM 93u+ 2012-08-01

Im AIX-Talk crontab & cron wird die Datumsausgabe für crontab-Einträge demonstriert.

%d Bloggern gefällt das: