|
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.
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.
|