Was ist eigentlich … ein »Cronjob«?

Wenn man neue Website-Anwendungen oder Online-Portale einrichtet, findet sich in der Installationsanleitung häufig auch der Hinweis, dass ein »Cronjob« einzurichten sei. Aber worum handelt es sich dabei eigentlich?

Cronjobs beinhalten Aufgaben, die regelmäßig oder zu bestimmten Zeitpunkten stattfinden sollen. Ein Beispiel wäre ein automatischer Versand von E-Mails zur Erinnerung an Fristen oder tägliche Zusammenfassungen eines Forums. Diese Mails werden in der Regel nicht jedes Mal von einem Menschen zusammengestellt, sondern von der Server-Software.

Gebraucht werden diese wiederkehrenden Aufgaben vor allem auf Systemen, die rund um die Uhr laufen: Backups werden automatisiert angelegt oder bestimmte Systembereinigungen können so regelmäßig zu weniger frequentierten Zeiten (meist nachts) ablaufen. Das Entkoppeln von Momenten hoher Systemlast und Hintergrundaufgaben, die auch zu anderen Zeitpunkten stattfinden können, stellt den neben termingebundenen Aufgaben einen weiteren großen Vorteil von Cronjobs dar – ein typisches Beispiel wäre die Aktualisierung eines Inhaltsindexes für die Suchfunktion: Diese muss nicht exakt in dem Moment geschehen, wenn ein neuer Artikel in die Datenbank eingetragen wird, sondern darf meist auch einige Minuten später erst erfolgen.

Auf Arbeitsplatzrechnern oder Notebooks hingegen sind Cronjobs seltener anzutreffen. Oft werden wiederkehrende Aufgaben wie die Suche nach neuen Antivirus-Signaturen einfach jedes Mal bei Systemstart durchgeführt.

Für einen Cronjob benötigt man die Aufgaben, die erledigt werden sollen, niedergeschrieben in einem Programmskript. Skripte in einer Programmiersprache wie PHP, die gerade bei Website-Anwendungen sehr beliebt ist, kann aber von einem Server nicht direkt verstanden werden, sondern muss von einem »Interpreter« übersetzt werden. Welcher das ist, muss beim Einrichten eines Cronjobs ebenfalls angegeben werden. Und schließlich sind die Zeitangaben für das Ausführen wichtig – hier gibt es eine Fülle von Möglichkeiten (siehe Grafik).

Dieser Cronjob läuft jeden Morgen um 7:00 Uhr.

Cronjobs werden tabellarisch in einer Crontab-Datei abgespeichert. Bei Webhosting-Providern ist häufig eine grafische Benutzeroberfläche vorhanden, um die Jobs einzutragen und zu verwalten. Leider sind dabei oft Begrenzungen vorgegeben, z.B. dass mindestens zwei Stunden zwischen der Ausführung eines Cronjobs liegen muss. Für Web-Anwendungen, die häufiger solche Hintergrundaufgaben benötigen, kann man den Cronjob dann ggf. mehrfach anlegen: Während der erste z.B. zu allen ungeraden Stunden ausgeführt würde, wäre Cronjob 2 für alle geraden Stunden zuständig.

Gelegentlich sind Cronjobs mit Zugriffstokens abgesichert, d.h. nur wenn man eine Art Passwort mit übermittelt, wird der Cronjob ausgeführt. Dieses Verfahren setzen wir u.a. im ePartool ein, um sicherzustellen, dass ein Cronjob nicht missbräuchlich zum Spam-Mail-Versenden fehlgeleitet werden kann.

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert

Diese Website verwendet Akismet, um Spam zu reduzieren. Erfahre mehr darüber, wie deine Kommentardaten verarbeitet werden.