Cron ist ein nützliches Dienstprogramm in jedem Unix-ähnlichen Betriebssystem. Es kann Befehle zu einem bestimmten Zeitpunkt planen. Diese geplanten Befehle oder Aufgaben sind sogenannte „Cronjobs“. Cron wird so zum Ausführen geplanter Sicherungen, zum Überwachen des Speicherplatzes, zum regelmäßigen Löschen von Dateien (z. B. Protokolldateien), zum Ausführen von Systemwartungsaufgaben und vielem mehr verwendet.

    Inhaltsverzeichnis:

Lesezeit: 11 Min
Teile den Artikel

Wie funktionieren Cronjobs?

Einen Befehl zu erteilen, der eine Aufgabe zu einem bestimmten Zeitpunkt wiederholt plant, ist ein Cronjob. Wer einen einmaligen Job für einen späteren Zeitpunkt planen möchte, verwendet normalerweise dazu einen Befehl. Für wiederkehrende Aufgaben ist Cron die perfekte Lösung. Cron arbeitet im Hintergrund, um nicht interaktive Jobs auszuführen. In Windows kennen Benutzer bereits Hintergrundprozesse wie „Dienste“.

Dieses Programm befindet sich immer im Ruhezustand und wartet, ob ein Befehl ihn auffordert, eine bestimmte Aufgabe auszuführen – entweder innerhalb des Computers oder von einem anderen Computer im Netzwerk. Eine Cron-Datei ist eine einfache Textdatei, die einen Auftrag enthält, der zu einem bestimmten Zeitpunkt ausgeführt werden soll. Die Standard-System-Crontab-Datei lautet / etc / crontab und befindet sich in einem Crontab-Verzeichnis /etc/cron.*/. Nur Systemadministratoren können die System-Crontab-Datei bearbeiten.

Da Unix-ähnliche Betriebssysteme jedoch mehrere Benutzer unterstützen, kann jeder Nutzer auch eine eigene Crontab-Datei erstellen und Befehle starten, um Tasks jederzeit auszuführen. Ein Cron-Daemon überprüft die Datei und führt den Auftrag auf dem Systemhintergrund aus. Cronjobs können die Systemwartung, das Überwachen des Speicherplatzes und die Planung von Sicherungen automatisieren. Cronjobs eignen sich aufgrund ihrer Natur hervorragend für einen Computer, der rund um die Uhr funktioniert – einen Server.

Die Anforderungen für den Einsatz von Cronjobs sind Unix-ähnliche Server wie Linux- oder BSD-Betriebssysteme (BSD: Berkely Software Distribution). Darüber hinaus bedarf es an dedizierten Servern („Dedicated Server“), die nicht mit anderen geteilt werden. Cronjobs können zwar auf gemeinsam genutzten Servern („Shared Server“) ausgeführt werden, verbrauchen jedoch auch Ressourcen von anderen Clients. Über SSH (Secure Shell) oder Telnet-Client greifen Anwender dann auf den Webserver zu, um eine sichere Verbindung herzustellen. Cron-Dateien und Skripte lassen sich mit FTP-Programmen hochladen.

Das sind die Cronjob Elemente

Die meisten Cronjobs umfassen drei Komponenten:

  1. Das Skript, das aufgerufen oder ausgeführt werden soll.
  2. Der Befehl, der das Skript regelmäßig ausführt.
  3. Die Aktion oder Ausgabe des Skripts.

Die meisten Skripte, für die ein Cronjob erforderlich ist, enthalten spezifische Anweisungen zur Einrichtung.

Cronjobs – die Hintergründe

Cron war ursprünglich ein Systemdienst unter Unix und wurde von mehreren Benutzern des Systems genutzt. CronTab wird jede Minute gestartet, die aufgezeichneten Aufträge führt das System mit Zeitstempeln und Benutzerberechtigungen (Root-Server) aus. Es wird zum Verwalten des Systems eingesetzt. Diese Funktion wurde bis heute beibehalten. Der heutige Cron-Daemon arbeitet jedoch nicht mehr mit virtueller Zeit, sondern mit einem kontinuierlich laufenden Server in Echtzeit.

Ähnlich wie bei der Batch-Programmierung oder Stapelverarbeitung wird der Cronjob kontinuierlich und nacheinander verarbeitet. Die Daten werden in einer Tabelle mit bestimmten unabhängigen Variablen notiert, die Informationen über die Zeit und den ausgeführten Befehl enthält. So kann Cron den Zeitstempel genau angeben, der den Cronjob schließlich auslöst.

Die Stapelprogrammierung wird normalerweise für die Serverinstallation und -konfiguration angewandt, während Cronjobs eher bei der Systemverwaltung zum Einsatz kommen. Dies geschieht normalerweise bei wenigen Website-Besuchern, da Cronjobs große Mengen an Ressourcen auf dem Server verbrauchen. Mit Cron können verschiedene Analyse- und Verwaltungsaufgaben präzise und automatisch ausgeführt werden.

Wann ist es sinnvoll, auf Cronjobs zurückzugreifen?

Beim Automatisieren zeitaufwändiger Verwaltungs- und Evaluierungsaufgaben auf einem Server sind Cronjobs immer empfehlenswert. Cronjobs verwenden Skripte und manchmal sogar Content-Management-Systeme. Infolgedessen sind die möglichen Anwendungen vielfältig. Zum Beispiel können Cronjobs:

  • die Datenbank reinigen
  • Backups sichern
  • Besucherstatistiken für den Webserver erstellen
  • Newsletter automatisch senden

Cronjobs sollten aktiv sein, wenn die Website nur wenige Besucher hat. Die für den Cronjob erforderlichen Ressourcen können nämlich die Ladezeit beeinflussen und den Server belasten.

Wofür kann ich Cronjobs nutzen?

Cronjob-Systeme dienen in erster Linie zur Wartung. Webseiten nutzen Cronjobs beispielsweise mithilfe von PHP-Skripts während Besucher-Minima-Zeiten. So haben Anwender verschiedene Möglichkeiten:

  • Automatisiert neue Inhalte posten: Wer regelmäßig neue Artikel veröffentlichen lassen will, sollte auf einen Cronjob zurückgreifen.
  • Durch Cronjobs lassen sich automatisch Newsletter bereitstellen. Im Idealfall werden die E-Mails nach und nach versandt. Dies ist problemlos mit einem stündlichen Abruf möglich.
  • Mit Cronjobs lassen sich Statistiken erstellen. Wer beispielsweise nicht in jeder Seitenansicht Statistiken neu generieren möchte, kann mithilfe eines Cronjobs die Statistiken einmal täglich aktualisieren. So wird beispielsweise einmal am Tag eine Zusammenfassung aller Aufrufzahlen eines einzelnen Blogposts erstellt.
  • Anwender können automatisch ihren RSS-Feed aktualisieren. Nach jeder Veröffentlichung wird die dazugehörige XML-Datei entweder neu generiert oder der eigene RSS-Feed mithilfe eines Cronjobs aktualisiert.
  • Rechnungen erstellen: Cronjobs eignen sich sehr gut zum Generieren und Senden von Rechnungen, da es sich um eine Aufgabe handelt, die in regelmäßigen Abständen gebündelt ausgeführt werden kann.
  • Anwender können ihre Datenbank bereinigen und veraltete Datensätze automatisch löschen. Dazu gehören beispielsweise Protokolleinträge, die älter als 30 Tage sind sowie Kommentare, die ein bestimmtes Zeitlimit erreicht haben.
  • Datenbanksicherung: Dieser Punkt ist bei großen Datenbanken etwas schwieriger. Bei kleineren Datenbanken ist ein Backup mithilfe eines Cronjobs problemlos möglich.
  • Künstliche Intelligenz nutzen: Mit Techniken des maschinellen Lernens lassen sich Skripten beispielsweise mitteilen, zu einer bestimmten Uhrzeit aus den neuen Datensätzen zu lernen und sich selbst zu optimieren.
  • Updates sind mit Cronjobs einfacher umzusetzen. Wenn es verwendet wird, wenn beispielsweise ein Update für WordPress verfügbar ist, wird empfohlen, die neueste Version zu einem bestimmten Zeitpunkt über einen Cronjob zu installieren.

Wie lege ich einen Cronjob an und was ist die Datei „CronTab“?

Die Basis verschiedener Cronjobs ist CronTab. Mithilfe des Befehls CronTab -e lässt sich die Aufgabe in jedem Befehlszeileneditor aufgerufen werden. Eine grafische Benutzeroberfläche bieten Programme wie GNOME Schedule für die Verwaltung von Cronjobs. Viele Webseiten (wie cronjob.de oder crontab.com) ermöglichen visuelle Benutzeroberflächen und andere Dienste.

CronTab besteht aus sechs in der Tabelle angeordneten Spalten. Die Zeitstempel in Minuten, Stunden, Tagen, Monaten und Wochentagen befinden sich in den ersten fünf Spalten. Der auszuführende Auftrag steht in der letzten Spalte. Jede ist mit einem Leerzeichen getrennt, mehrere Einträge werden mithilfe von Kommas getrennt.

Die Cronjob Syntax lautet wie folgt: minute hour day month day-of-week gefolgt von der command-line-to-execute

Mögliche Werte für die ersten fünf Spalten sind:

  • Minute 0-59
  • Stunde 0-23
  • Tag 1-31
  • Monat 1-12
  • Tag der Woche 0-7

Das Zeichen „*“ wird ebenfalls häufig verwendet. Es ist gleichbedeutend mit allen Zeiteinheiten in der entsprechenden Spalte. Zum Beispiel täglich oder monatlich. Wird der genaue Zeitstempel nicht angegeben, können Cronjobs auch regelmäßig mit

@hourly, @daily, @weekly, @monthly, @yearly und @reeboot

ausgeführt werden. Der relative oder absolute Pfad des Skripts ist normalerweise in der sechsten Spalte angegeben.

Das sind Cron-Variablen

Innerhalb der Umgebungsvariablen sind die auszuführenden Befehle der CronTab integriert. Normalerweise kommen dafür SHELL-, PHP- und PERL-Skripte zum Einsatz. Mögliche Befehlsoptionen sind:

  1. SHELL: SHELL leitet den Befehlszeileninterpreter an, der schlussendlich das Skript ausführen soll. Die normale Einstellung ist „/ bin / sh“. Unter Unix können verschiedene Interpreter verwendet werden, wie beispielsweise / bin / tcsh oder / bin / csh.
  2. PATH: PATH zeigt den Pfad an, nach dem Cron nach Befehlen und Skripten sucht.
  3. MAILTO: Mithilfe MAILTO kann der Benutzer angegeben werden, an den Cron die Ergebnisse nach Ausführung des Skripts sendet. Die Standardeinstellung ist üblicherweise der Abonnent.

Für alle Cronjobs können verschiedene Variablen definiert werden, sodass die Ausgabe von Zeitstempeln, Aufträgen und Skripten an die entsprechenden Benutzer angepasst werden kann. Außerdem kann die Arbeit des Skripts über LOGFILE protokolliert werden.

Praktisches Beispiel für einen Cronjob

Als Beispiel aus der Praxis dient ein Skript, das jeden Tag um 08:30 Uhr ausgeführt wird. Die Ausgabe wird an die E-Mail-Adresse geschickt.

MAILTO=empfä[email protected]

30 8 * * * /usr/local/bin/pfad/test.php

Der Cron-Daemon ist dabei ein laufender Prozess, der Befehle zu bestimmten Daten und Zeiten ausführt. Benutzer können ihn anwenden, um Aktivitäten zu planen, entweder als einmalige Ereignisse oder als wiederkehrende Aufgaben.

Anwender nutzen die Befehle „at“ oder „batch“, um nur einmalige Aufgaben mit Cron zu planen. Für Befehle, die wiederholt ausgeführt werden müssen (z. B. stündlich, täglich oder wöchentlich), können Benutzer den Befehl „CronTab“ verwenden. Der Auftrag „CronTab“ erstellt eine Datei mit Befehlen und Anweisungen, die der Cron-Daemon ausführen soll. Benutzer können den Auftrag CronTab mit den folgenden Optionen verwenden:

  • crontab -a: Installiert den Dateinamen als CronTab-Datei. Auf vielen Systemen wird dieser Befehl einfach als crontab-Dateiname ausgeführt (d. H. ohne die Option -a).
  • crontab -e: Bearbeitet die CronTab-Datei oder erstellt eine.
  • crontab -l: Zeigt die CronTab-Datei an.
  • crontab -r: Entfernt die CronTab-Datei.
  • crontab -v: Zeigt an, wann die CronTab-Datei zuletzt bearbeitet wurde. Diese Option ist nur auf wenigen Systemen verfügbar.
  • crontab -u: In Verbindung mit anderen Optionen kann mit dieser Option die CronTab-Datei des Benutzers geändert oder angezeigt werden.

Häufige Cron-Anwendungen

Mithilfe der Cron-Services lassen sich offensichtliche Dinge planen, wie beispielsweise regelmäßige Backups. Doch auch weniger offensichtliche Aufgaben sind möglich. Dazu gehören beispielsweise die Systemzeiten auf vielen Computern werden mithilfe des Network Time Protocol (NTP) festgelegt. Während NTP die Systemzeit festlegt, stellt es nicht die Hardwarezeit ein. Cron kann die Hardwarezeit basierend auf der Systemzeit einstellen.

Zudem kann mithilfe eines Bash-Programms eine sogenannte „Nachricht des Tages“ erstellt werden. Es enthält zusätzliche Informationen wie die Datenträgernutzung. Viele Systemprozesse und -dienste wie Logwatch und Rootkit Hunter verwenden den Cron-Dienst, um täglich Aufgaben zu planen und Programme auszuführen.

Tipps zur Planung eines Cronjobs

Der Versuch, Cronjobs zu planen, kann eine Herausforderung sein, insbesondere wenn die Anzahl der Jobs zunimmt. Viele Systeme haben ungefähr ein Dutzend Cronjobs, die regelmäßig ausgeführt werden. Doch wenn zu viele Jobs gleichzeitig ausgeführt werden – insbesondere die Sicherungen und Kompilierungen – geht dem System der Arbeitsspeicher aus und die Auslagerungsdatei ist schnell voll. Das kann das System während der Leistungssteigerung überlasten. Mehr Speicher und eine verbesserte Aufgabenplanung kann dieses Problem lösen. Auch Aufgaben, die schlecht geschrieben wurden, sollten entfernt werden.

Der Host-Computer wird laut des Cron-Dienstes ständig ausgeführt. Das heißt, wenn der Computer während eines Zeitraums ausgeschaltet wird, in dem die Ausführung von Cronjobs geplant war, werden sie erst bei der nächsten Planung aktiviert. Dies kann zu Problemen führen, wenn es sich um kritische Cronjobs handelt.

Bedeutung von Cronjobs für das Online-Marketing

Cronjobs sind eine effektive Methode, um zeitaufwändige Verwaltungs- und Evaluierungsaufgaben automatisch auf dem Server auszuführen. Sie können die Datenbank bereinigen und als Backup speichern. Dateien werden gesichert und überflüssige Inhalte automatisch gelöscht. Zudem wird das System automatisch repariert. Darüber hinaus können Besucherstatistiken für den Webserver erstellt werden, die beispielsweise täglich an den zuständigen Benutzer gesendet werden.

Daher kann Cronjobs die Belastung durch Webanalysen basierend auf Protokolldateien reduzieren. Die vom Server gespeicherten Daten liefern wertvolle Informationen zur Optimierung der Website. Da Cronjobs mit Skripten und manchmal mit Content-Management-Systemen arbeiten, sind die Möglichkeiten der Anwendung sehr vielfältig. Abhängig von der Skript- und Inhaltsumgebung können Anwender regelmäßig Newsletter senden, Kennzahlen wie Bestseller und Artikelbewertungen neu berechnen und Lagerbestände kontrollieren. Darüber hinaus kann die Serverlast bis zu einem gewissen Grad von Cronjobs gesteuert werden. Daher ist die Ausführung von Cronjobs besonders sinnvoll, wenn die Website nur wenige Besucher hat.

Cronjobs werden zwar hauptsächlich von Systemadministratoren verwendet, sind aber auch für Webentwickler unglaublich nützlich. Cron eignet sich beispielsweise dafür, um abgelaufene Konten zu deaktivieren, fehlerhafte Links zu überprüfen oder sogar Newsletter für bestimmte Benutzer zu senden. Der Cron-Zugriff erfordert jedoch Ressourcen. Dies sollte nicht auf Kosten des Servers gehen. Schließlich erhöht der Befehl die Ladezeit normaler User beim Aufrufen der Website. Dieser Aspekt wird oft übersehen.

Fazit

Das Einrichten eines automatisch geplanten Jobs ist nicht nur praktisch, sondern verhindert auch ein Verpassen der Aktion. Alles, was zu tun ist, ist den richtigen Befehl zu verwenden und den passenden Zeitpunkt zu wählen.

Cronjobs sind sich wiederholende Aufgaben, die automatisch ausgeführt werden. Dazu benötigen Anwender einen sogenannten Cron-Daemon. Mit modernen Unix-ähnlichen Betriebssystemen wie Linux, BSD und macOS kann die Jobsteuerung Ressourceneinsparungen gewährleisten. Normalerweise haben die von Cronjobs ausgeführten Programme einen großen Einfluss auf ein funktionsfähiges System. Cron ist vorinstalliert.

omt logo

Diesen Artikel jetzt als Podcast anhören

Jetzt anhören auf: Spotify | Apple Podcast | Google Podcast

Teile den Artikel
Wie ist Deine Meinung zu dem Thema? Wir freuen uns über Deinen