Home Hosting Support

Cronjobs

Cron ist ein Dienst, der es erlaubt Aufgaben regelmässig und automatisiert ausführen zu lassen.

.qmail erstellen

Bevor Sie fortfahren sollten Sie eine Datei namens ".qmail" in Ihrem Homeverzeichnis erstellen. In diese Datei schreiben Sie Ihre Mailadresse mit vorangehendem kaufmännischem "&" (es können auch mehrere Adressen angegeben werden. Schreiben Sie dazu jeden Empfänger auf eine neue Zeile). Cron wird Fehlermeldungen an diese Adressen senden. Fehlt diese Datei, gehen die Meldungen an den Systemadministrator, und das macht ihn nicht so glücklich.

&benutzer@domain.com

Auszuführendes Script

Der nächste Schritt ist ein Script zu erstellen, das von Cron ausgeführt werden soll. In diesem Beispiel wird PHP verwendet. Erstellen Sie eine Datei namens crontest.php mit folgendem Inhalt:

#!/usr/bin/php -q
<?php
  echo "Ich wurde von Cron aufgerufen\n";
?>

Der Schalter "-q" ist nötig um die Ausgabe von Headern zu unterdrücken. Markieren Sie das Script mit als ausführbar und testen Sie es:

user@tsunami:~$ chmod u+x crontest.php
user@tsunami:~$ ./crontest.php
Ich wurde von Cron aufgerufen

Wichtig ist zu wissen, dass Cron nur dann eine E-Mail an Sie verschickt, wenn das Script eine Ausgabe produzierte. Sie sollten deshalb das Script so gestalten, dass bei fehlerfreier Ausführung keine Ausgabe produziert wird, sondern nur dann, wenn ein Fehler aufgetreten ist.

Crontab editieren

Die einzelnen "Cron jobs" werden in die "Cron tab" eingetragen. Sie editieren die crontab folgendermassen:

user@tsunami:~$ crontab -e

Standardmässig wird vi als Editor aufgerufen. Sind Sie mit der Bedienung von vi nicht vertraut, beenden Sie den Editor, indem Sie ":q!" eingeben. Sie können einen alternativen Editor in der Umgebungsvariable EDITOR festlegen:

user@tsunami:~$ export EDITOR=mcedit

Tragen Sie nun das Script in Cron ein. Auf die Bedeutung der fünf Sterne (nicht Deluxe) wird gleich eingegangen:

* * * * * /home/user/crontest.php

In dieser Form wird das Script jede Minute ausgeführt. Sie können die diesen Cronjob deaktivieren, indem Sie die Zeile mit einem vorangehenden Raute-Zeichen "#" auskommentieren.

Prüfen Sie nun mit "crontab -l" nach, dass der cronjob korrekt installiert wurde. Sie sollten nach maximal einer Minute eine E-Mail erhalten haben, vielleicht sogar schon mehrere, wenn Sie lange gewartet haben.

Die Einträge in der Crontab haben folgende Bedeutung:

Minute Stunde Tag im Monat Monat Tag der Woche Pfad zum Script
0-59 0-23 1-31 1-12 1-7 (7=Sonntag) /voller/pfad/zum/script

Ein "*" lässt sich etwa als "jede" übersetzen. Im Beispiel von oben wird das Script also jede Minute, zu jeder Stunde, an jedem Tag im Monat, in jedem Monat, an jedem Tag der Woche ausgeführt.

Ein Script, dass zu jeder vollen Stunde ausgeführt werden soll, sähe etwa so aus:

0 * * * * /home/user/crontest.php

Es wird also ausgeführt, immer wenn die Minute "0" ist und das ist zu jeder vollen Stunde der Fall. Mehrere Werte lassen sich auch mit Kommata abtrennen, so dass ein Script, dass jede halbe Stunde ausgeführt werden soll folgendermassen in Cron eingetragen werden muss:

0,30 * * * * /home/user/crontest.php

Wertebereiche lassen sich mit einem Bindestrich "-" angeben. Soll ein Script zu jeder vollen Stunde, aber nur von 9 Uhr Morgens bis 17 Uhr ausgeführt werden, wird das so angegeben:

0 9-17 * * * /home/user/crontest.php

Intervalle können mit einem "/" angegeben werden. "Alle 5 Minuten" schreibt sich so:

*/5 * * * * /home/user/crontest.php

Es wird empfohlen als kleinsten Intervall 5 Minuten zu wählen, einerseits um Systemressourcen zu sparen und andererseits um eine Mailflut zu verhindern, wenn ein Fehler im Script auftritt. Der Systemadministrator behält sich vor Amok gelaufene Scripte zu deaktivieren (natürlich nicht ohne den Benutzer davon in Kenntnis zu setzen).

Weitere Lektüre

Die man-page "man 5 crontab" gibt weitere Auskunft.


© TsunamiHost by Nine Internet Solutions AG | Impressum | SMTP Spam Policy