Was ist ein Cronjob und wie nutzt man diesen?

Von einem Cronjob hast du vielleicht schon mal was gehört, aber was ist das eigentlich genau? Dieser Frage gehe ich in meinem heutigen Artikel nach.

Dabei geht es zudem darum, wie man diesen nutzen kann und was das tolle daran ist.

An Ende stelle ich noch eine Alternative dazu vor.

Was ist ein Cronjob?

Der sogenannte Cron-Daemon ist ein Dienst auf unixbasierten Betriebssystemen, die ja für die meisten Hosting-Server genutzt werden. Dieser ermöglicht es die sogenannten Cronjobs durchzuführen, was wiederkehrende zeitgesteuerte Aufgaben sind.

Der Cronjob dient also dazu in regelmäßigen Abständen etwas zu tun. In der Regel wird mit einem Cronjob eine Datei aufgerufen.

Wofür kann man diesen Cronjob nutzen?

Welche regelmäßigen Aufgaben könnte man auf einem Server damit erledigen? Dafür gibt es viele Möglichkeiten.

Ich selber setze Cronjobs ein, um z.B. Daten in meiner Datenbank zu aktualisieren. Auf abenteuer-brettspiele.de habe ich ein Script geschrieben, welches auf die API von boardgamegeek.com zugreift. Dabei handelt es sich um die größte Brettspiel-Datenbank der Welt. Und da es dort z.B. auch Daten zur Bewertung und zum daraus resultierenden Ranking der Brettspiele gibt (und diese sich ständig ändern), starte ich mit einem Cronjob dieses Aktualisierungsscript regelmäßig, um die Daten in meiner Datenbank zu aktualisieren. Auf diese Weise kann ich die Daten aktuell halten, ohne dass ich in irgendeiner Form manuell was aktualisieren muss.

Etwas ähnliches habe ich in der Vergangenheit auf meinem Blog selbstaendig-im-netz.de gemacht. Dort hatte ich ein Partnerprogramm für Semiare im Einsatz. Die Daten zu den einzelnen Seminaren wurden über eine XML-Datei auf dem Server des Anbieters bereitgestellt. Mit Hilfe eines Cronjobs habe ich diese Datei einmal täglich ausgelesen und die kommenden Seminare ausgegeben.

Erst kürzlich habe ich per Cronjob die Preload-Funktion des Caching-Plugin WP Fastest Cache automatisiert. Die im Plugin selbst vorgesehene Preload-Möglichkeit hat nicht so ganz funktioniert, aber durch den Cronjob läuft es nun zuverlässig.

Es gibt viele weitere Möglichkeiten Cronjobs einzusetzen. Regelmäßige Backups, Aktualisierungen, regelmäßige Status-Mails, Updates, Komprimierung von Logfiles und vieles mehr sind damit möglich.

Cronjob einrichten

Es gibt verschiedene Wege einen Cronjob einzurichten.

Für Root-Server, bei denen man direkten Zugriff auf das Betriebssystem hat, ist das Kommando crontab entscheidend. Damit kann man in der Konsole einzelne Cronjobs einrichten. Das ist allerdings eine recht anspruchsvolle Maßnahme, bei der man sich auskennen sollte. Eine Anleitung dazu findet sich hier.

Deutlich einfacher geht es bei allen Managed-Hosting oder -Server Angeboten. Dort gibt es die Möglichkeit Cronjobs ab den etwas teureren Tarifen einzurichten. Bei All-Inkl.com sind Cronjobs ab dem Tarif Privat-Plus dabei. Bei DomainFactory ab ManagedHosting Professional. Die Einrichtung ist hier deutlich einfacher, wobei es unterschiedliche Möglichkeiten gibt.

Bei DomainFactory findet man einen Menüpunkt “Cronjobs” im Admin. Hier kann man diese anlegen und bestehende bearbeiten. Das Formular sieht bei mir so aus:

Was ist ein Cronjob und wie nutzt man diesen?

Man hat die Möglichkeit eine Datei entweder per URL (auch extern) oder direkt ein Script auf dem eigenen Server aufzurufen. Dafür müssen ggf. die Zugangsdaten eingegeben werden.

Zudem sind die Einstellungen für den Zeitpunkt wichtig. Hier kann man ganz flexibel die Frequenz einstellen. Von nur alle paar Monate bis hin zu alle 5 Minuten ist hier fast alles möglich. Auch solche Sachen wie jeden ersten Dienstag im Monat um 15 Uhr.

Bei All-Inkl.com sieht das Formular etwas anders aus, aber bietet im Grunde diesselben Möglichkeiten:

Was ist ein Cronjob und wie nutzt man diesen?

Hier gibt man ebenfalls das Script an, welches ausgeführt werden soll und legt anschließend den Zeitpunkt fest. Wobei hier die flexiblen Möglichkeiten etwas eingeschränkt sind, aber für die allermeisten Fälle ist das völlig ausreichend.

Und so schnell ist der Cronjob dann auch eingerichtet und das angegebene Script wird ausgeführt.

Cronjob-Alternative

Bei sehr günstigen Hosting-Tarifen ist oft keine Möglichkeit vorhanden einen Server-seitigen Cronjob festzulegen. Doch WordPress und andere Content Management Systeme bieten hier eine Alternative.

Bei WordPress ist WP-Cron dafür verantwortlich. Im Grunde macht man hier auch nichts groß anders. Man definiert ein Script, welches ausgeführt werden soll und legt den Zeitpunkt fest. Der Unterschied ist hier aber, dass nicht der Server von sich aus zum richtigen Zeitpunkt das Script ausführt, sondern dass WP-Cron immer nur dann läuft, wenn auch jemand die Website besucht.

Jedes mal, wenn ein Seitenaufruf geschieht, wird im Hintergrund von WP-Cron geprüft, ob ein Cronjob ausgeführt werden muss. Mal abgesehen davon, dass diese zusätzliche Prüfung natürlich etwas die Performance negativ beeinflusst, gibt es bei kleinen Websites oft Probleme.

Hat man z.B. einen Cronjob für die Ausführung eines Scripts morgens um 2 Uhr eingerichtet und dann kommt kein Besucher vor um 6 Uhr, dann wird das Script auch erst um 6 Uhr ausgeführt. Eine genaue zeitlich Steuerung ist mit WP-Cron also nicht möglich. Da ist ein serverseitiger richtiger Cronjob viel zuverlässiger.

Wie man WP-Cron durch einen richtigen Cronjob ersetzen kann, erfahrt ihr in diesem Artikel.

Eure Fragen

Du hast eine Frage rund um das Webhosting?

Dann hinterlasse einfach einen Kommentar und ich beantworte diese in einem Artikel dieser Serie.

Peer Wandiger

Schreibe einen Kommentar