Cronjob: Programme auf Server automatisch ausführen

19cb12793d5b45f096dd5a5d096b61b7

Was ist ein Cronjob?

Ein sogenannter „CronJob“ ist eine Aufgabe, die automatisiert abläuft. Das Betriebssystem gibt regelmäßig Befehle aus, um diese Cron-Jobs auszuführen. Das kann eine einzelne Aufgabe sein, meist sind es aber mehrere komplexe Aufgaben, mehrere CronJobs.

Der CronJob – Aufgaben automatisch ausführen lassen

Unter Unix und Unix-ähnlichen Systemen sind Daemons Prozesse, die im Hintergrund laufen und bestimmte Dienste bereitstellen. Benutzerinteraktion kann nur indirekt erfolgen, z.B. über Signale, Pipes und vor allem (Netzwerk-)Sockets. Der Cron-Daemon dient der zeitbasierten Prozessausführung zur Automatisierung wiederkehrender Aufgaben, den Cron-Jobs.

Der Cron-Daemon führt häufig Computerprogramme zur Systemwartung in regelmäßigen Abständen rund um die Uhr aus. Unter anderem Dienste, die Protokolldateien archivieren und löschen oder Systemprogramme regelmäßig automatisch aktualisieren.

Die Crontab – hier werden Cronjobs verwaltet

Wo werden CronJobs auf einem Computer angelegt und verwaltet? In der sogenannten CronTab. Die CronTab ist eine benutzereigene, textbasierte Tabelle zum Anlegen, Verwalten und Ausführen von Cronjobs.

Crontab ist sowohl ein Dateiname (/etc/crontab) als auch ein Befehl zum Verwalten von Cron-Steuerdateien. Die Datei /etc/crontab ist die sogenannte System-Crontab, auf die nur Root Zugriff hat.

Die Cron-Tab(elle) setzt sich aus sechs Spalten zusammen. In den ersten fünf Spalten ist die Zeitangabe zur Ausführung des geplante Cron-Job eingetragen. Jede einzelne Spalte benennt die Minute, Stunde, Tag, Monat und den Wochentag des geplanten Crontab.

Die sechste Spalte enthält den Pfad zu dem Programm (meist ein Shellskript), das an genau dem zuvor notierten Zeitpunkt automatisch ausgeführt werden soll.

Aufbau der CronTab-Datei

┌───────────── Minute (0 – 59)
│ ┌───────────── Stunde (0 – 23)
│ │ ┌───────────── Tag des Monats (1 – 31)
│ │ │ ┌───────────── Monat (1 – 12)
│ │ │ │ ┌───────────── Wochentag (0 – 6)
│ │ │ │ │

* * * * /Pfad/Programmname

Beispiel für einen eingetragenen Cronjob in einer CronTab-Datei

# Crontab Beispiel
55 23 * * 7 /bin/prog.sh

Erklärung: Das Shellskript „prog.sh“ im Ordner „/bin/“ wird jeden Sonntag um 23:55 Uhr ausgeführt.

Weitere Beispiele für Einträge von Cronjobs in einer Crontab-Tabelle

# Das Programm /usr/sbin/programm.sh wird jeden Mittwoch um 5:30 Uhr morgens ausgeführt
30 5 * * 3     /usr/sbin/programm.sh

# Das Programm /usr/sbin/programm.sh wird jeden Freitag und jeden 13. um 0:30 Uhr morgens ausgeführt
30 0 13 * Fri     /usr/sbin/programm.sh

# Das Programm /usr/sbin/programm.sh  wird alle fünf Minuten ausgeführt
*/5 * * * *     /usr/sbin/programm.sh

Eigene Cron-Jobs in einer Cron-Tab anlegen bei IONOS (1und1)

Gute Hoster bieten für ihre Hosting-Pakete und managed Server-Lösungen spezielle Formular für das Einrichten von Cronjobs an. Diese „Cronjob-Angebote“ sind als Best-Effort-Dienst zu verstehen. Mit „Best Effort“ in Telekommunikationsnetzen ist eine minimale Dienstgüte-Zusicherung gemeint. Der Betreiber sagt Benutzern zu, Überermittlungsanfragen schnellstmöglich im Rahmen der ihm zur Verfügung stehenden Ressourcen zu bedienen.

Das bedeutet, dass Anbieter preiswerter Webhosting-Tarife (und Managed Server) selbst festlegen, in welchem Zeitraum sie den Cronjob eines Kunden ausführen. STRATO spricht in diesem Zusammenhang beispielsweise von 4 Stunden in „Stoßzeiten“.

IONOS (1&1) Cronjobs in Webhosting-Tarifen anlegen

Bei Webhosting-Angeboten hast Du keine Möglichkeit, einen „echten“ Cronjob in einer Crontab einzutragen, weil Du im Hosting-Paket keine Root-Rechte für den Server (auf dem Deine Website gehostet wird) besitzt.

IONOS bietet aber allen Nutzern ihrer Hosting-Tarife einen „IONOS Cronjob-Manager“. Es handelt sich um ein mehrseitiges Formular für verschiedene, frei wählbare Angaben. Der Nachteil des IONOS Cronjob Managers ist die fehlende Möglichkeit zum Eintragen einer beliebigen Ausführungszeit deines Skript.

Nachteil: Du kannst den angelegten Cronjob maximal 1x täglich ausführen lassen und nicht beispielsweise aller 5 oder 60 Minuten

IONOS (1&1) Cronjobs auf einem Managed Server anlegen

Nutzer eines Managed Server haben i.d.R. ebenfalls keinen Zugriff auf den ROOT des Servers. Dies ist oft gewollt, denn viele Mieter eines vollwertigen Servers haben entweder keine Zeit ihren Miet-Server zu administrieren, oder ihnen fehlt einfach das technische Wissen für diese hochkomplexen Aufgabe. Hier setzt die Idee der „gemanagten Server“ an. Wartung und sicherheitsrelevante Aufgaben (unter anderem Backups) übernimmt der Dienstanbieter (z.B. IONOS, STRATO, DomainFactory, Host Europe). Damit ein unerfahrener Anwender die Software des Servers (Betriebssystem) nicht beschädigen kann, wird er nicht als Administrator eingetragen, sondern als „Gast“ ohne Root-Zugriff.

Die Einrichtung von Cronjobs auf einem Managed Server funktioniert bei IONOS (1und1) oder STRATO ebenso wie die Einrichtung von zeitgesteuerten Abläufen in den Hosting-Tarifen dieser Anbieter.

Wer „echte“ Cronjobs mit präzisen und garantierten Ausführungszeiten benötigt, muss einen externen Cronjob-Anbieter buchen, bezahlen, oder einen ROOT-Server anmieten und betreuen.

Auch bei einem managed Server kannst Du den Cronjob nur einmal am Tag ausführen lassen und nicht minütlich.

Externe Anbieter von Cronjobs

Wenn es Dir nicht genügt, einen Cronjob irgendwann innerhalb von 4 Stunden ausführen zu lassen und Du kein Betreiber/Mieter eines ROOT-Servers bist, kannst Du externe Cronjob-Dienste/Angebote nutzen. Ein in Deutschland renommierter Cronjob-Dienstleister ist unter cronjob.de zu finden. Der kostenlose Cronjob-Tarif ermöglicht die Ausführung genau eines Cronjobs alle 2 Minuten. Eine minutengenaue Ausführung von Cronjobs ist erst im Tarif „unlimited“ möglich. Dafür bietet dieser Tarif eine Benachrichtigung bei Fehlern per SMS und viele anderen Optionen.

Der Tarif „Plus“ für 0,99 EURO/Monat wartet mit weniger Optionen auf, ist aber gerade für Nutzer preiswerte Hosting-Pakete eine gute Alternative, um dennoch zeitgesteuert aller paar Minuten bestimmte, wichtige Aufgaben automatisch ausführen zu lassen.