Veröffentlicht am

Einführung in Cron-Jobs

Viewed

times

Autoren
  • Name
    Twitter
Serie: Automatisierung periodischer Website-Pings mit Cron-Jobs in einer Conda-Umgebung

Willkommen zum ersten Teil unserer Serie über die Automatisierung periodischer Website-Pings. In diesem Beitrag werden wir uns mit Cron-Jobs beschäftigen – einem wesentlichen Werkzeug zur Automatisierung sich wiederholender Aufgaben auf Unix-basierten Systemen. Egal, ob Sie Entwickler, Systemadministrator oder einfach nur daran interessiert sind, Ihre Arbeitsabläufe zu optimieren, das Erlernen von Cron-Jobs wird äußerst nützlich sein.

Voraussetzungen

Bevor wir anfangen, stellen Sie sicher, dass Sie:

  • Grundlegende Kenntnisse der Befehlszeile haben
  • Zugriff auf ein Unix- oder Unix-ähnliches Betriebssystem (wie Linux oder macOS) haben

Was sind Cron-Jobs?

Ein Cron-Job ist im Wesentlichen eine geplante Aufgabe, die automatisch in festgelegten Intervallen ausgeführt wird. Diese Aufgaben könnten zum Beispiel regelmäßige Backups, Systemupdates oder Überwachungsskripte sein.

Einrichten von Cron-Jobs

Das Einrichten von Cron-Jobs ist ein einfacher Prozess. Machen Sie sich keine Sorgen, wenn Sie mit der Syntax noch nicht vertraut sind – wir werden das später im Detail besprechen.

Zugriff auf die Crontab

Die Crontab-Datei ist der Ort, an dem Sie Ihre Cron-Jobs definieren. Öffnen Sie die Crontab-Datei zur Bearbeitung in Ihrem Terminal, indem Sie den folgenden Befehl eingeben:

crontab -e

Wenn es das erste Mal ist, dass Sie dies tun, werden Sie möglicherweise aufgefordert, einen Texteditor auszuwählen (wie vi/vim oder nano). Wählen Sie Ihre bevorzugte Option. Wenn Sie unsicher sind, wählen Sie nano.

Hinzufügen eines Cron-Jobs In der geöffneten Datei stellt jede Zeile einen separaten Cron-Job dar. Fügen wir ein einfaches Beispiel hinzu, um den Text 'Hello World !' auszugeben.

* * * * * echo "Hello World !" >> ~/cron_log.txt

Dies fügt jede Minute die Nachricht "Hello World !" zu einer Datei namens cron_log.txt in unserem Home-Verzeichnis hinzu.

Speichern und Beenden

Lassen Sie uns die Datei speichern und den Editor verlassen. Wenn Sie nano als Ihren Editor ausgewählt haben:

  • Drücken Sie Ctrl + X
  • Drücken Sie Y zur Bestätigung
  • Drücken Sie Enter zum Speichern

Für Vi/Vim:

  • Drücken Sie ESC
  • Geben Sie :wq ein und drücken Sie Enter

Herzlichen Glückwunsch! Sie haben gerade Ihren ersten Cron-Job eingerichtet.

Cron-Jobs überprüfen Um die eingerichteten Cron-Jobs zu überprüfen, verwenden Sie den Befehl:

crontab -l

Dies listet alle Cron-Jobs für den aktuellen Benutzer auf. Jetzt, da wir unseren ersten Cron-Job eingerichtet haben, lassen Sie uns die Cron-Syntax im Detail verstehen.

Verständnis der Cron-Syntax

Die Cron-Job-Syntax besteht aus fünf Zeitfeldern, gefolgt von dem Befehl, den wir ausführen möchten. So sieht es aus:

* * * * * /path/to/command

Jedes dieser *-Symbole repräsentiert eine bestimmte Zeiteinheit.

FeldWertBeschreibung
Minute*Jede Minute (0-59)
Stunde*Jede Stunde (0-23)
Tag des Monats*Jeder Tag des Monats (1-31)
Monat*Jeder Monat (1-12)
Wochentag*Jeder Wochentag (0-7, wobei sowohl 0 als auch 7 Sonntag darstellen)

Unser früherer Befehl * * * * * echo "Hello World !" >> ~/cron_log.txt wird also jede Minute jeder Stunde jedes Tages im Monat ausgeführt, d.h. er wird jede Minute ausgeführt.

Hier sind einige andere Beispiele mit verschiedenen Zeitplänen:

ZeitpunktBefehlBeschreibung
0 12 * * */path/to/commandFührt den Befehl jeden Tag um 12:00 Uhr (Mittag) aus.
30 8 * * 1/path/to/commandFührt den Befehl jeden Montag um 8:30 Uhr aus.
0 0 1 * */path/to/commandFührt den Befehl am ersten Tag jedes Monats um Mitternacht aus.
0 0 1 1 */path/to/commandFührt den Befehl am 1. Januar um Mitternacht aus.
*/5 * * * */path/to/commandFührt den Befehl alle 5 Minuten aus.
Erweiterte Cron-Techniken

Während wir die Grundlagen behandelt haben, bietet Cron erweiterte Funktionen:

  • Bereiche: Verwenden Sie Bindestriche, um Bereiche anzugeben. Zum Beispiel bedeutet 1-5 im Wochentag-Feld Montag bis Freitag.
  • Listen: Verwenden Sie Kommata, um Listen anzugeben. Zum Beispiel bedeutet 1,3,5 im Wochentag-Feld Montag, Mittwoch und Freitag.
  • Schrittwerte: Verwenden Sie */n, um Schritte anzugeben. Zum Beispiel bedeutet */10 im Minutenfeld alle 10 Minuten.

Im nächsten Beitrag der Serie werden wir die Einrichtung eines Cron-Jobs mit einer Anaconda-Umgebung durchgehen.

Testen Sie Ihr Wissen
Was macht der Cron-Zeitplan 0 6 * * *?

Führt den Befehl jeden Tag um 6:00 Uhr aus

Wie würden Sie einen Cron-Job planen, der jeden Freitag um 15:15 Uhr ausgeführt wird?

15 15 * * 5 Führt den Befehl jeden Freitag um 15:15 Uhr aus