Für Linux Webhosting und Managed Dedicated Server

Cronjobs sind praktisch, um wiederkehrende Aufgaben zu automatisieren, können aber bei unsachgemäßer Verwendung auch die Funktionalität der Website beeinträchtigen. In diesem Artikel erfahren Sie, worauf Sie bei der Erstellung und Ausführung von Cronjobs achten sollten.

Befolgen Sie die folgenden Hinweise, um Probleme bei der Ausführung Ihrer Cronjobs zu vermeiden:

  • Lassen Sie mindestens 5 Minuten verstreichen, bevor Sie einen Cronjob wiederholen. So vermeiden Sie, dass Ihre Cronjobs in Zeiten hoher Serverauslastung parallel und damit langsamer ausgeführt werden.

  • Fügen Sie in Ihre Crontab-Datei ganz oben immer ein MAILTO ein (z.B.: MAILTO=max.mustermann@example.com). Bei Problemen erhalten Sie so die konkrete Fehlermeldung bequem per E-Mail.

  • Wenn Sie PHP-Skripte per Cronjob ausführen, stellen Sie sicher, dass eine kompatible PHP-Version verwendet wird. Die folgende Liste gibt einen Überblick über die verfügbaren PHP-Versionen und zeigt den jeweils korrekten Pfad zur entsprechenden PHP-Binärdatei (PHP-Interpreter) für die Verwendung im Cronjob.

    /usr/bin/php4.4 (/usr/bin/php und /usr/bin/php4 sind Symlinks)
    /usr/bin/php5.2 (/usr/bin/php5 ist ein Symlink)
    /usr/bin/php5.4
    /usr/bin/php5.5
    /usr/bin/php7.1
    /usr/bin/php7.2
    /usr/bin/php7.3
    /usr/bin/php7.4
    /usr/bin/php8.0
    /usr/bin/php8.1
    /usr/bin/php8.2

    Beispiel:

*/10 * * * * /usr/bin/php8.2 -f /homepages/12/d12345678/htdocs/test.php
  • Achten Sie darauf, den vollständigen (absoluten) Pfad zu Ihrem Skript anzugeben.  Weitere Informationen finden Sie unter folgendem Link: Absoluten Pfad eines Webspace ermitteln
  • Bei PHP-Skripten, die direkt über den PHP-Interpreter (siehe Liste oben) per Cronjob ausgeführt werden, werden die php.ini-Dateien nicht berücksichtigt. Daher werden eventuell geänderte Variablen nicht gesetzt. Für den Fall, dass die php.ini-Dateien berücksichtigt werden sollen, kann das PHP-Skript alternativ auch über einen HTTP-Request ausgeführt werden:
*/10 * * * * /usr/bin/curl -s https://example.com/test.php > /dev/null

Falls das Skript in einem geschützen Verzeichnis liegt, müssen Sie mittels dem Parameter -u noch die Zugangsdaten übergeben.
Für Shared-Hosting-Pakete empfehlen, das Verzeichnis grundsätzlich mit einem Verzeichnisschutz zu schützen.

*/10 * * * /usr/bin/curl -s -u user:password https://example.com/test.php > /dev/null