Wie richten wir einen Cronjob ein?

Um das automatische Ausführen eines Skriptes auf Ihrem virtuellen Server zu erreichen, kann ein sogenannter Cronjob eingerichtet werden. Gesteuert wird das Cron-System über den Cron-Dämon. Welche Skripte wann ausgeführt werden sollen, wird Cron über sogenannte Crontab-Einträge mitgeteilt, die in der Cron-Tabelle des Systems eingetragen werden.

Die Einrichtung von solchen Cronjobs kann direkt über das easyTECC-Administrationstool erfolgen, wobei das Zeitintervall und das auszuführende Kommando angegeben werden müssen. Wenn per Cron eigene PHP-Skripte ausgeführt werden sollen, muss der erste Teil des auszuführenden Kommandos auf den PHP-CLI-Interpreter (CLI=Command Line Interface) verweisen:

/usr/sbin/php-cli528

Für die PHP-CLI-Variante können Sie sogar eine eigene php.ini verwenden, z.B. um die maximale Skript-Laufzeit zu erhöhen. Erstellen Sie zu diesem Zweck bitte das Verzeichnis

/usr/local/etc/phpcgi

und kopieren die Datei

/etc/php.ini

in das Verzeichnis. Wenn als Apache-Modul nicht PHP5.2.8 genutzt wird, muss die Zeile, die mit "extension_dir =" beginnt, auf Folgendes geändert werden:

extension_dir = /usr/local/php5.2.8AP2/lib/php/20060613

Ein Cronjob, der ein lokales PHP-Skript ausführt, kann z.B. so aussehen:

/usr/sbin/php-cli528 /home/httpd/docs/cronscript.php 1>/dev/null 2>/dev/null

Manuelles Einrichten eines Cronjobs

Auf Ihrem easyTECC-Server befinden sich in der Datei

 

/home/web/cronfile

 

die aktuellen Cronjobs. Diese Datei können Sie ggf. manuell oder mit einem selbst geschriebenen Skript ändern. Die Cronjobs haben dabei folgendes Format:

Minuten

Stunden

Tag des Monats

Monat

Wochentag

Befehl


Die Felder werden durch Leerzeichen getrennt. Allerdings kann das letzte Feld, also der Befehl, beliebig viele Leerzeichen enthalten. Die anderen Felder dürfen keine Leerzeichen enthalten.

Die ersten fünf Felder geben die Zeit an, zu denen Cron den Befehl ausführen soll. Ihre jeweiligen Bedeutungen sind wie folgt:

FELD

BEDEUTUNG

WERTEBEREICH

Minuten

Minuten nach der Stunde

0 - 59

Stunden

Stunde des Tages

0 - 23 ( 0 = Mitternacht )

Tag des Monats

Numerischer Tag innerhalb des Monats

1 - 31

Monat

Der Monat des Jahres

1 -12

Wochentag

Der Wochentag

0 - 6 ( 0 = Sonntag )


Beachten Sie, dass die Zählung der Stunden bei Mitternacht beginnt (0) und die Nummerierung der Tage mit Sonntag (ebenfalls 0). Ein Eintrag in einem dieser Felder kann auch mit einem */ und dem WERT folgend eingerichtet werden. Dies bedeutet »Führe den Befehl an jedem WERT aus«.

Am besten kann man dies an Beispielen verdeutlichen:

* * */5 * * /usr/local/bin/virtual /usr/local/bin/webalizer -c /etc/webalizer.conf.sample 1>/dev/null 2>/dev/null

- Dieser Cronjob führt Webalizer »an jedem 5. Tag aus«, also am 01., 06., 11. usw.

 00 */8 * * * /usr/local/bin/virtual /usr/local/bin/webalizer -c /etc/webalizer.conf.sample 1>/dev/null 2>/dev/null

- Dieser Cronjob führt Webalizer »alle 8 Stunden aus«, also um 00:00, 08:00, 16:00 usw.


Der Befehl '1>/dev/null 2>/dev/null' am Ende dieser beiden Beispiele dient zum Deaktivieren der Systemmeldungen beim Ausführen eines Cronjobs. Ohne diesen erhalten Sie bei jedem Ausführen des Cronjobs eine "unnötige" E-Mail.

Speichern Sie nun diese Datei 'cronfile' im Verzeichnis '/home/web'

Dann geben Sie in Ihrem Telnet-Prompt 'crontab /home/web/cronfile' ein - das war's. Nun sind die Cronjobs dem Cron übergeben. Dies können Sie mit dem Befehl

crontab -l

überprüfen. Es wird Ihnen nach Eingabe dieses Befehls der eigentliche Inhalt des Cron angezeigt. Sobald Sie die Einträge komplett löschen möchten, geben Sie bitte

crontab -r

ein.

Hier noch einige der gängigsten Cronjobs:

 00 */8 * * * /usr/local/bin/virtual /usr/local/bin/webalizer -c /etc/webalizer.conf.sample 1>/dev/null 2>/dev/null

- für das Ausführen von Webalizer in bestimmten Zeitintervallen


 02 00 * * * /usr/sbin/dellogs -d [domainname]

- für das Löschen der Logdateien von einem bestimmten Domainnamen zu einem bestimmten Zeitpunkt


 02 00 * * * /usr/sbin/dellogs -a

- für das Löschen der Logdateien aller Domainnamen zu einem bestimmten Zeitpunkt


WICHTIG:

Achten Sie darauf, dass jede Zeile im 'cronfile' mit einem (und nur einem) "Return" abgeschlossen wird und dass sich in dieser Datei nur die benötigten Zeilen befinden (solange Sie nicht Einträge für weitere Cronjobs nach dem selben Muster anfügen).

Verwandte Artikel:

Share on Facebook FAQ ausdrucken