Was ist ein Cronjob?

Autor:   |  07.07.2018


cronjob.jpgBei einem Cronjob handelt es sich um wiederkehrende Aufgaben im Serverbereich, die automatisiert zu einem bestimmten Zeitpunkt ausgeführt werden. Was genau dahinter steckt, woher der Begriff stammt und wofür man Cronjobs überhaupt verwendet, wird im folgenden Artikel erklärt.

Um einen Server im Internet sicher und stabil betreiben zu können, muss dieser fortlaufend administriert und überwacht werden. Im Rahmen dieser Routine muss nicht nur individuell an Sicherheitsupdates oder Softwareaktualisierungen gearbeitet werden, es fallen zudem verschiedene weitere Aufgaben an, von denen einige in regelmäßig wiederkehrenden Intervallen erledigt werden müssen. Dabei kann es sich zum Beispiel um das Anlegen von Backups oder das Bearbeiten von Logfiles handeln. Damit diese Aufgaben nicht jedes Mal manuell durch den Systemadministrator vorgenommen werden müssen, lassen sie sich durch sogenannte Cronjobs automatisieren. Cronjobs können auf allen unix-basierten Systemen wie etwa unter Linux/Unix oder iOS/MacOS eingerichtet werden. Grundlage dafür bildet der sogenannte Cron-Daemon, ein Systemdienst, der die Automatisierung der Aufgaben ermöglicht. Der Begriff Cron leitet sich vom griechischen Wort „chronos“ ab, das „die Zeit“ bedeutet. Zudem steht das Akronym Cron für „command run on notice“.

Wie lassen sich Cronjobs einrichten?

Um Cronjobs nutzen zu können muss auf jeden Fall ein passendes Webhosting vorhanden sein. Üblicherweise wird für die Einrichtung von Cronjobs ein dedizierter Server vorausgesetzt. Grund dafür ist, dass die Ausführung eines Cronjobs Systemressourcen benötigt, die auf einem Shared Webhosting dann den anderen Kunden nicht zur Verfügung stehen würden. Trotzdem bieten einige Webhoster auch die Ausführung von Cronjobs auf herkömmlichen Webspace Paketen an. In der Regel ist dies aber nur in höherpreisigen Profi Tarifen möglich, die dem Kunden mehr Systemressourcen einräumen. Klassischerweise wird ein Cronjob direkt über die Befehlskonsole des Servers per SSH (Secure Shell) erstellt. Es ist aber auch möglich Cron-Dateien per FTP-Server beispielsweise auf ein Webspace Paket hochzuladen. Das Vorgehen per SSH läuft wie folgt ab:

Als Erstes verbindet man sich per SSH mit dem eigenen Server. Nun hat man Zugriff auf den Kommandozeileneditor, über den man die weiteren Befehle eingibt. Mit dem Befehl crontab -e kann nun eine Cron-Datei erstellt oder editiert werden. Mit dem Befehl crontab -l lässt sich der Inhalt einer Cron-Datei auflisten. Cronjobs können mit dem Befehl crontab -r auch wieder gelöscht werden.

Die Cron-Datei selbst besteht aus sechs tabellarisch angeordneten Spalten. In den ersten fünf Spalten wird der Zeitstempel in der Reihenfolge Minute, Stunde, Tag, Monat, Wochentag festgelegt. In der letzten Spalte wird dann schließlich der auszuführende Befehl eingetragen. Jede Spalte ist durch ein Leerzeichen von der nächsten getrennt. Durch die Verwendung des * Symbols hat man zudem die Möglichkeit, einen Wert als beliebig zu kennzeichnen.

Ein kompletter Cron-Befehl könnte also folgendermaßen aussehen: 59 11 * * 1 /bin/test.sh

Hier wird an jedem Montag um 11:59 Uhr die Datei /bin/test.sh ausgeführt.

Wofür werden Cronjobs verwendet?

Cronjobs werden für regelmäßig wiederkehrende Aufgaben auf einem Server verwendet, die automatisch ausgeführt werden sollen. Dabei kann es sich unter anderem um folgende Aufgaben handeln:
  • Backups erstellen
  • Mit einem Cronjob lassen sich automatisiert zu fest vorgegebenen Zeitpunkten Backups von Datenbanken oder dem gesamten System erstellen. Gerade bei Anwendungen, bei denen sich die Inhalte permanent ändern, sind automatisierte regelmäßige Backups hilfreich.
  • Logfiles erstellen
  • Cronjobs können genutzt werden, um Statistiken über die Seitenaufrufe der eigenen Webpräsenz zu erstellen. Auf diese Weise kann das Logfile einmal am Tag automatisch aktualisiert werden.
  • Datenbanken bereinigen
  • Im Laufe der Zeit können sich zahlreiche unnötige Einträge in Datenbanken auf einem Server ansammeln. Mit der Hilfe von Cronjobs lassen sich diese bereinigen, etwa indem alte Einträge automatisiert gelöscht werden.
  • E-Mails versenden
  • Gerade im Bereich des Newsletterversands können Cronjobs zur Arbeitserleichterung beitragen. Hier müssen die E-Mails nicht händisch an alle Empfänger versendet werden, sondern lassen sich automatisch abschicken.
  • Rechnungen erstellen
  • Mithilfe von Cronjobs können auch Rechnungen automatisiert erstellt werden, wenn beispielsweise eine bestimmte Aufgabe erledigt wurde.
  • Updates ausführen
  • Die meisten Softwareanwendungen, die auf Servern eingesetzt werden, müssen regelmäßig aktualisiert werden. Auch hier können Cronjobs helfen, um automatisch stets auf dem neusten Stand zu bleiben.
Die Einsatzbereiche von Cronjobs sind vielfältig und können die Arbeit eines Systemadministrators deutlich erleichtern. Wer einen eigenen Server betreibt, der sollte sich daher unbedingt mit dem Thema beschäftigen.