Sprache auswählen

Cronjobs sind dazu da, um regelmässig wiederkehrende Abläufe zu automatisieren. Sie können steuern, zu welchen Tageszeiten und/oder Wochentagen bestimmte Programme oder Skripte ausgeführt werden.

Cronjob anlegen

Um einen neuen Cronjob anzulegen, loggen Sie sich in Ihr Control Panel ein. Sie finden den «Cronjob Manager» auf der Serverübersicht unter «Advanced».

Benachrichtigung

Wenn die Ausführung Ihres Cronjobs Textausgaben produziert, werden Ihnen diese per E-Mail zugestellt.

Im Feld «E-Mail-Adresse» können Sie die Empfängeradresse für die Nachrichten angeben. Falls Sie diese Nachrichten nicht möchten, fügen Sie die Zeichen >/dev/null 2>&1 hinten an Ihren Befehl an. Damit werden alle Ausgaben unterdrückt.

/usr/local/bin/php -f /home/username/bin/beispiel.php >/dev/null 2>&1

oder

/home/username/bin/beispiel >/dev/null 2>&1

Cronjob-Befehl

Die Datei, die Sie als Cronjob ausführen wollen, muss entweder ausführbar sein oder durch einen Interpreter ausgeführt werden.

Ausführbare Dateien

Binäre Programme oder Skripte mit einer Shebang-Zeile können direkt ausgeführt werden.

Stellen Sie dazu sicher, dass der Dateimodus dies auch zulässt: Das x-Bit muss gesetzt sein. Wenn Sie nicht sicher sind, setzen Sie den Modus auf 755 oder 750.

Shebang-Zeile

Diese spezielle Zeile im Skript gibt den Interpreter an, der den Inhalt dieses Skripts lesen und ausführen kann.

Es ist immer die oberste Zeile in der ersten Spalte und sie beginnt mit den Zeichen #!, gefolgt vom Pfad zum Interpreter.

Eine Shebang-Zeile für ein PHP-Skript auf unseren FreeBSD-Servern sieht so aus:

#!/usr/local/bin/php

Weitere Shebang-Zeilen:

#!/usr/local/bin/perl
#!/usr/local/bin/python

Skripte mit einem Interpreter starten

Um ein Skript ohne Shebang-Zeile auszuführen, müssen Sie dieses mit dem dazugehörigen Interpreter aufrufen.

Beachten Sie, dass die meisten zusätzlichen Programme unter FreeBSD Unix unter /usr/local/bin/ liegen.

Lesen Sie dazu auch den Artikel zu Pfade, Verzeichnisse, System.

Für ein PHP-Skript unter /home/username/bin/beispiel.php sieht das Cron-Kommando wie folgt aus:

/usr/local/bin/php -f /home/username/bin/beispiel.php

Weitere Kommandozeilen:

/usr/local/bin/perl /home/username/bin/beispiel.pl
/usr/local/bin/python /home/username/bin/beispiel.py

Zeitpunkt der Ausführung

Um zu bestimmen, wann das Kommando des Cronjobs ausgeführt werden soll, müssen Sie fünf Zeitwerte angeben. Der Cron-Daemon prüft minütlich, ob einer Ihrer Cronjobs ausgeführt werden soll. Immer wenn alle fünf Werte zutreffen, wird das Kommando ausgeführt.

Minute
Geben Sie die Minute an, in der Ihr Cronjob ausgeführt werden soll (0-59).
Stunde
Geben Sie die Stunde an, in der Ihr Cronjob ausgeführt werden soll. (0-23).
Tag
Geben Sie den Tag im Monat an, an dem Ihr Cronjob ausgeführt werden soll (1-31).
Monat
Geben Sie den Monat im Jahr an, an dem Ihr Cronjob ausgeführt werden soll (1-12).
Wochentag
Geben Sie den Tag in der Woche an, an dem Ihr Cronjob ausgeführt werden soll (0-7, Sonntag ist 0 und 7).

Liste

Sie können auch mehrere, durch Kommas getrennte Werte angeben. Um einen Job um xx:20 und xx:50 zu starten, tragen Sie bei "Minute" "20,50" ein.

Wildcard

Felder, die Sie «ignorieren» möchten, können Sie mit einer Wildcard «*» versehen. Wenn Sie z.B. einen Job an jedem Tag im Jahr ausführen möchten, müssen Sie bei «Tag», «Monat» und «Wochentag» nicht die ganze Liste der Möglichkeiten ausfüllen; es genügt, diese Felder mit «*» als «immer zutreffend" zu markieren.

Intervall

Wenn Sie ein Skript in einem bestimmten Intervall ausführen wollen, können Sie dies mit "*/interval" markieren. Das Feld gilt als zutreffend, wenn der aktuelle Wert restlos durch interval teilbar ist. Wenn Sie möchten, dass ein Job alle zwei Stunden ausgeführt wird, tragen Sie bei «Stunde» "*/2" ein. Das trifft auf 0, 2, 4, 6 Uhr etc. zu.

Beispiele

Ausführung zu einer bestimmten Zeit

Sie möchten ein Skript zur wöchentlichen Zusammenfassung immer an Samstagabend um 23.15 Uhr ausführen:

Minute: 15
Stunde: 23
Tag: *
Wochentag: 6
Monat: *

Befehl:

/home/username/bin/zusammenfassung.pl

Ausführung alle 5 Minuten

Sie bieten dem Benutzer Ihrer Website an, via E-Mail ein Bild von sich auf die Seite zu laden. Dazu möchten Sie diese Mailbox alle 5 Minuten überprüfen, um die neuen Bilder in die Seite einzubinden.

Minute: */5
Stunde: *
Tag: *
Wochentag: *
Monat: *

Befehl:

/usr/local/bin/php -f /home/username/bin/checkmail.php

Wiederholte Ausführung nachts

Um einen kleinen Film zu machen, möchten Sie nachts in regelmässigen Abständen ein Bild von einer Webcam in Ihrer Stadt herunterladen. Dazu haben Sie sich einen «Einzeiler» geschrieben, den Sie von 20.00 Uhr abends bis 6.00 Uhr morgens alle 20 Minuten ausführen möchten.

Minute: */20
Stunde: 20-23,0-6
Tag: *
Wochentag: *
Monat: *

Befehl:

/usr/local/bin/wget 'http://www.exmaple.com/webcam.cgi?tilt=-20&yaw=93' -O /home/username/cam-images/`date +\%Y-\%m-\%d`.jpg

Sie können auch regelmässig eine URL aufrufen, ohne die Datei herunterzuladen:

/usr/local/bin/wget -q -O /dev/null 'http://www.exmaple.com/cron.php' >/dev/null 2>&1

Weiterführende Ressourcen

Weitere Informationen zum Umgang mit Cronjobs finden Sie z. B. unter http://www.howtoforge.de/anleitung/eine-kurze-einfuhrung-in-cron-jobs oder im Unix-Buch Ihres Vertrauens.

Nutzen Sie dieses Formular für Feedback zur obigen Anleitung.
Für Supportanfragen verwenden Sie bitte dieses Formular.

Diese E-Mail-Adresse ist vor Spambots geschützt! Zur Anzeige muss JavaScript eingeschaltet sein.

 

Konnten Sie finden, was Sie suchen?

Unsere Support-Profis helfen Ihnen gerne persönlich weiter!

 

© 2001 - Hostpoint AG