So funktioniert die Cron Syntax

So funktioniert der Cron Syntax (head image)

TL; DR;

Wahrscheinlich bist du hierher gekommen, weil du einen Cronjob einrichten willst und Hilfe bei der Syntax der Zeitplanung brauchst. Hier sind ein paar Beispiele, die Dir weiterhelfen sollten:

MinutenStundenTag MonatWochentag Erklärung
Jede Minute
Jede Stunde
30 Jeden Tag um 8:30 Uhr
Jeden ersten Tag des Monats um 0:00 Uhr
Jeden Montag um 2:00 Uhr
45 Um 8:45 Uhr am 1. Januar
*/2 Alle zwei Stunden
1,3,5 Jede Stunde am Montag, Mittwoch und Freitag

Wenn du also jeden Tag um 8:30 Uhr einen Befehl ausführen musst, solltest du folgendes in die Crontab eintragen:

30 8 * * * echo “Hello world!”

Wenn du mit verschiedenen Ausdrücken herumspielen und verstehen willst, was sie bewirken, können wir dir das Tool crontab.guru sehr empfehlen.

Was ist Cron?

Cron ist ein Tool zur Planung von Aufträgen, die oft als Cronjobs bezeichnet werden. Wann ein Auftrag ausgeführt wird, wird durch den Planungsausdruck gesteuert, eine in 5 Teile aufgeteilte Zeichenkette:

  1. Minuten
  1. Stunden
  1. Tag des Monats
  1. Monat
  1. Wochentag

Jede Minute kann Cron dann die aktuelle Zeit mit dem Planungsausdruck abgleichen, um festzustellen, ob der Befehl ausgeführt werden soll oder nicht.

Änderungen an der Crontab vornehmen

Das Einrichten eines neuen Cronjobs ist mit der crontab verblüffend einfach:

crontab –e

Damit öffnest du die crontab-Datei mit deinem bevorzugten Texteditor. Mach dir keine Sorgen, wenn die Datei völlig leer ist. Das bedeutet nur, dass noch keine Cronjobs vorhanden sind.

Fügen wir also unseren ersten Cronjob hinzu, indem wir eine neue Zeile in die crontab-Datei einfügen:

* * * * * date >> /tmp/cronjob-output.txt

Erkärung:

AusdruckAuszuführender Befehl
* * * * * date >> /tmp/cronjob-output.txt 
Jede Minute……jede Stunde…… an jedem Tag des Monats……jeden Monat…… an jedem Wochentag…… wird das aktuelle Datum in die Datei „/tmo/cronjob-output.txt“ geschrieben.

Sicher nun die Datei, und der neue Job wird ausgeführt. Warte ein paar Minuten und öffnen dann die Datei „/tmp/ cronjob-output.txt“ – Du solltest sehen, wann der Cronjob ausgeführt wurde:

cat /tmp/cronjob-output.txt

Output:

Mon Mar  6 20:09:00 CET 2023 
Mon Mar  6 20:10:00 CET 2023 
Mon Mar  6 20:11:00 CET 2023

Wenn wir den Eintrag in der crontab wie folgt ändern:

*/2 * * * * date >> /tmp/cronjob-output.txt

Und nachdem wir einige Minuten gewartet haben, können wir sehen, dass der Befehl nun alle zwei Minuten statt jede Minute ausgeführt wird:

cat /tmp/cronjob-output.txt

Output:

Mon Mar  6 20:12:00 CET 2023 
Mon Mar  6 20:14:00 CET 2023 
Mon Mar  6 20:16:00 CET 2023 
Mon Mar  6 20:18:00 CET 2023 
Mon Mar  6 20:20:00 CET 2023

Cron Zeitplan Ausdrücke

Hier sind einige weitere Beispiele für Cron-Scheduling-Ausdrücke:

Stündlich von 8 bis 17 Uhr

0 8-17 * * * echo “Hello world”

Jeden Montag um 8 Uhr morgens

0 8 * * 1 echo “It is Monday, 8am”

Täglich zu einer speziellen Zeit

30 15 * * * echo “Current time: 15:30”

Alle 30 Sekunden

Um einen Cronjob mehrmals pro Minute laufen zu lassen, müssen wir mehrere Cronjobs einrichten, die für dieselbe Zeit, aber mit unterschiedlichen Verzögerungen geplant sind. In diesem Fall wird der erste Cronjob sofort ausgeführt, während der andere 30 Sekunden wartet, damit sie alle 30 Sekunden ausgeführt werden:

* * * * * echo “First execution this minute” 
* * * * * (sleep 30; echo “Second execution this minute”)

Jeden ersten Tag des Monats

0 0 1 * * echo “Hello, it is the first day of the month!”

Zugriff auf die Crontabs anderer Benutzer

Falls du auf die crontab eines anderen Benutzers zugreifen musst, kannst du dies tun, indem du den crontab-Befehl mit dem sudo-Befehl als anderer Benutzer ausführst:

sudo crontab -e -u www-data

In diesem Fall können wir die crontab des Benutzers www-data öffnen. Es ist auch möglich, einfach mit dem Befehl su zu diesem Benutzer zu wechseln, allerdings funktioniert diese Methode nicht bei deaktivierten Benutzern oder Benutzern ohne Shell-Zugang.

su [Username]
crontab -e

Wenn Du mehr über Benutzer erfahren möchtest, insbesondere über den Root-Benutzer, dann schau Dir diesen Artikel von uns an.

Nach oben scrollen