Best Practices für die Einrichtung von Cronjobs
Bitte verwenden sie die "Drucken" Funktion am Seitenende, um ein PDF zu erstellen.
Für Webhosting und Managed Dedicated Server
Cronjobs sind ein leistungsstarkes Werkzeug zur Automatisierung wiederkehrender Aufgaben. Werden sie jedoch unsachgemäß konfiguriert, können sie die Performance Ihrer Website beeinträchtigen oder gar nicht erst ausgeführt werden.
In diesem Artikel erfahren Sie, welche Punkte Sie bei der Erstellung und Verwaltung von Cronjobs unbedingt beachten müssen.
1. Ausführungsintervall nicht zu klein wählen
Vermeiden Sie zu kurze Zeitabstände zwischen den Ausführungen. Wir empfehlen, mindestens 5 Minuten verstreichen zu lassen, bevor ein Cronjob erneut ausgeführt wird.
- Hintergrund: Bei zu häufiger Ausführung (z. B. jede Minute) kann es in Zeiten hoher Serverlast passieren, dass sich Prozesse überlappen. Dies kann zu parallelen Ausführungen führen, die den Server weiter verlangsamen und Prozesse blockieren.
2. Fehlerbenachrichtigung einrichten (MAILTO)
Um bei Problemen eine manuelle Durchsicht der Log-Dateien zu vermeiden, sollten Sie sich Fehlermeldungen per E-Mail zusenden lassen.
Fügen Sie dazu in der ersten Zeile Ihrer Crontab-Datei die Variable MAILTO ein:
MAILTO=max.mustermann@example.com
3. Die richtige PHP-Version verwenden
Wenn Sie PHP-Skripte direkt ausführen möchten, müssen Sie den absoluten Pfad zum PHP-Interpreter angeben. Stellen Sie außerdem sicher, dass Sie eine PHP-Version nutzen, die mit Ihrem Skript kompatibel ist.
Verwenden Sie immer den vollständigen Pfad zur Binärdatei (z. B. /usr/bin/php8.3).
| PHP-Version | Pfad zum Interpreter | |
|---|---|---|
| PHP 8.4 | /usr/bin/php8.4 | |
| PHP 8.3 | /usr/bin/php8.3 | |
| PHP 8.2 | /usr/bin/php8.2 | |
| Legacy (Älter) |
/usr/bin/php8.1 /usr/bin/php8.0 /usr/bin/php7.4 /usr/bin/php7.3 /usr/bin/php7.2 /usr/bin/php7.1 /usr/bin/php5.5 /usr/bin/php5.4 /usr/bin/php5.2 /usr/bin/php4.4 | Nutzen Sie idealerweise aktuelle Versionen. |
Hinweis
/usr/bin/php verweist auf PHP 4.4 (via Symlink). Um Inkompatibilitäten zu vermeiden, empfehlen wir die explizite Angabe der Versionsnummer (z. B. php8.3).
4. Absoluten Pfad zum Skript angeben
Der Cron-Daemon kennt Ihren aktuellen Ordner nicht. Geben Sie deshalb immer den vollständigen (absoluten) Pfad zu Ihrem Skript an. Der Pfad ist abhängig vom Erstellungsdatum Ihres Vertrags.
Ein Beispiel für eine Cronjob-Zeile (Ausführung alle 10 Minuten) lautet:
A) Verträge ab dem 17.08.2025 (Neu)
*/10 * * * * /usr/bin/php8.2 -f /home/www/test.php
B) Verträge, die vor dem 17.08.2025 abgeschlossen wurden (Bestand)
*/10 * * * * /usr/bin/php8.2 -f /homepages/12/d12345678/htdocs/test.php
Tipp: Wenn Sie unsicher sind, wie Ihr Pfad lautet, hilft Ihnen dieser Artikel weiter: Absoluten Pfad (Document Root) eines Webspace ermitteln
5. Eigene php.ini-Einstellungen nutzen (HTTP-Request)
Wenn Sie ein PHP-Skript direkt über den Interpreter aufrufen (wie oben beschrieben), werden individuelle Einstellungen in Ihrer php.ini ignoriert.
Wenn Ihr Skript spezielle Einstellungen aus der php.ini benötigt (z. B. memory_limit oder max_execution_time), sollten Sie den Cronjob stattdessen per HTTP-Request über cURL ausführen. Dies simuliert einen Aufruf über den Webbrowser.
Beispiel:
*/10 * * * * /usr/bin/curl -s https://example.com/test.php > /dev/null
Verwendung bei Verzeichnisschutz
Für Shared-Hosting-Pakete empfehlen wir aus Sicherheitsgründen, Skripte in verzeichnisgeschützten Ordnern abzulegen. Damit curl darauf zugreifen kann, müssen Sie Benutzername und Passwort mit dem Parameter -u übergeben.
Beispiel mit Authentifizierung:
*/10 * * * * /usr/bin/curl -s -u benutzer:passwort https://example.com/test.php > /dev/null