Zurück zur Startseite

Wie kann ich Cronjobs einrichten?

Verbinden Sie sich via SSH zu Ihrem Server. Um Ihre Cronjobs zu bearbeiten, geben Sie auf der Shell crontab -e ein.

Allgemeines

  • beachten müssen Sie dass Ihre Crontab mit einer Leerzeile enden muss, andernfalls wird der letzte Job nicht ausgeführt
  • die Angabe &> verwirft die Ausgabe des Befehls
  • durch die Angabe von MAILTO=myself@mydomain.ch am Anfang des Crontabs wird die Ausgabe von Cronjobs per E-Mail an die angegebene Adresse gesendet
  • Cronjobs sollten durch einen Sperrmechanismus immer nur einmal ausgeführt werden. Dies kann durch die Applikation, das Script oder durch die Verwendung von flock umgesetzt werden. Mehr Details hierzu haben wir in folgendem Beitrag zusammen gefasst: Sperrmechanismus für Cronjobs

Die Zeitangaben im Crontab ergeben sich folgendermassen (siehe auch weiterführender Link am Ende des Artikels):

┌───────────── Minute (0 - 59)
│ ┌───────────── Stunde (0 - 23)
│ │ ┌───────────── Tag des Monats (1 - 31)
│ │ │ ┌───────────── Monat (1 - 12)
│ │ │ │ ┌───────────── Wochentag (0 - 6)
│ │ │ │ │
* * * * *  /Pfad/Programmname

* stellt eine Wildcard für jede Minute / Stunde / etc. dar

Praxisbeispiele

Mittels curl eine URL aufrufen (jede 5. Minute in jeder Stunde):

5 * * * * flock -n /tmp/lockfile.curl.job -c 'curl https://www.mydomain.ch/cron/run &> /dev/null'

Ein Script alle vier Stunden zur vollen Stunde ausführen. Das Script muss ausführbar sein:

0 */4 * * * flock -n /tmp/lockfile.bash.job -c '/home/www-data/scripts/refresh_cache.sh &> /dev/null'

Jeden Mittwoch um 0:30 Uhr ein Script starten:

30 5 * * 3 flock -n /tmp/lockfile.bash.job -c '/home/www-data/scripts/weekly_report.sh &> /dev/null'

Weitere Erläuterungen zur Syntax sowie Praxisbeispiele werden anschaulich auf der folgenden Wikipedia Seite erklärt: Cronjobs

Haben Sie die gewünschten Informationen nicht gefunden?

Kontaktieren Sie unseren Support:

+41 44 637 40 40 Support Portal support@nine.ch