GT Logo zurück zu good-tutorials.de
Tutorial eintragen | Registrieren | Login
Tutorial: Cron-Jobs unter Linux einrichten

Kommentare anzeigen | Tutorial anzeigen | Melde Dich an um das Tutorials zu deinen Favoriten hinzu zu fügen.

Cron-Jobs unter Linux einrichten

Allgemeines über Cron-Jobs

Cron-Jobs werden über den Cron-Daemon gesteuert. Bei diesem handelt es sich um einen Hintergrundprozess, der im Prinzip ständig die Uhrzeit prüft und je nach seinen Einstellungen dann ggf. die ihm angegebenen Programme startet. Diese Programme führen meist Wartungsaufgaben durch. Die klassische Anwendung für Cron-Jobs ist z.B. das Löschen und Archivieren von Logdateien (Logrotation). Auch das regelmäßige Einspielen von Updates könnte von einem Cron-Job übernommen werden.

Der Cron-Daemon

Für den eigentlichen Cron-Daemon gibt es natürlich auch mehrere Alternativen. Die am weitesten verbreiteten sind wohl fcron und anacron. Im Normalfall ist von der installieren Distribution des Betriebssystems bereits ein cron-Daemon mitgeliefert. Es bietet sich selbstverständlich an, diesen dann auch der Einfachkeit halber zu verwenden.

Die Cron-Tab

Die Konfiguration des Daemons funktioniert über die Crontab; eine Tabelle, in der steht, welcher Prozess zu welcher Zeit ausgeführt werden soll. Auf den Systemen kann jeder Benutzer seine eigene Crontab verwenden. Eine systemweit geltende Crontab ist auf UNIX-Systemen im Normalfall unter /etc/crontab hinterlegt.

In der Tabelle sind die Befehle durch einen Zeilenumbruch getrennt. Die Tabelle besteht aus sechs Spalten; in der systemweiten Crontab sind es sieben. Kommentare werden am Zeilenanfang mit # markiert. Die Spalten sind durch Leerzeichen oder Tabulatoren voneinander getrennt. Die ersten fünf Spalten beschreiben die Zeit, zu der der Befehl ausgeführt werden soll; die letzte Spalte gibt den Befehl an sich an. Folgende Werte sind für die Zeiten zulässig:

  • Minute: 0 - 59
  • Stunde: 0 - 23
  • Tag: 1 - 31
  • Monat: 1 - 12
  • Wochentag: 0 - 7 (0 und 7 ist Sonntag; 1 ist Montag; usw.)

Beispiel einer Crontab

Minute Stunde Tag Monat Wochentag Benutzer* Befehl
* * * * 0   /usr/bin/myjob.sh
*/10 * * * *   /usr/bin/myjob.sh
0 12 1 * *   /usr/bin/myjob.sh
30 18 * 1-6 *   /usr/bin/myjob.sh
0 6,18 * * * root /usr/bin/myjob.sh

* Spalte nur in systemweiter Crontab sinnvoll

Die o.g. Zeilen haben folgende Bedeutung:

  1. /usr/bin/myjob.sh wird jeden Sonntag ausgeführt
  2. Befehl wird alle 10 min gestartet
  3. wird am ersten Tag jedes Monats um 12:00 Uhr ausgeführt
  4. läuft täglich von Januar bis Juni um 18:30 Uhr
  5. Kommando wird täglich um 6:00 Uhr und um 18:00 Uhr mit root-Rechten aufgerufen