Cronjob - Geplante Aufgaben
Cronjob im Kundenmenü (Plesk) erstellen
Im Kundenmenü kannst Du, zur automatischen Ausführung von Aufgaben, sogenannte Cronjobs unter dem Menüpunkt "Geplante Aufgaben" erstellen.
Du erreichst die "Geplanten Aufgaben" entweder über die Seitenleiste oder die Domaineinstellungen im Dashboard.
Klicke unter "Geplante Aufgaben" auf die Schaltfläche "+Aufgabe hinzufügen".
Möchtest Du zum Beispiel einen Cronjob für die Ausführung des Schedulers von TYPO3 einrichten, kannst Du diesen wie im Bild zu sehen einrichten.
Zeitsteuerung des Cronjobs
Häufig genutzte Ausführungszeiten:
Alle 5 Minuten: */5 * * * *
Alle 2 Stunden: * */2 * * *
Alternativ kannst Du die Ausführung auch stündlich, täglich, wöchentlich, monatlich oder jährlich ausführen lassen. Ändere dazu im Auswahlfeld die Option "Cron-Stil".
Verfügbare PHP-CLI Versionen
Muss das Skript mit einer bestimmten PHP-Version ausgeführt werden, bspw. der Scheduler von TYPO3, stehen die folgenden PHP-Versionen zur Verfügung:
- /opt/alt/php83/usr/bin/php
- /opt/alt/php82/usr/bin/php
- /opt/alt/php81/usr/bin/php
- /opt/alt/php80/usr/bin/php
- /opt/alt/php74/usr/bin/php
- /opt/alt/php73/usr/bin/php
- /opt/alt/php72/usr/bin/php
- /opt/alt/php71/usr/bin/php
- /opt/alt/php70/usr/bin/php
- /opt/alt/php56/usr/bin/php
- /opt/alt/php55/usr/bin/php
- /opt/alt/php53/usr/bin/php
- /opt/alt/php52/usr/bin/php
- /opt/alt/php44/usr/bin/php
PHP Datei über einen Cronjob ausführen
Damit eine PHP Datei über einen Cronjob geplant ausgeführt werden kann, muss diese über ein BASH Script aufgerufen werden.
Im Folgenden möchten wir am Beispiel der cron.php von Nextcloud zeigen, wie diese alle 5 Minuten aufgerufen werden kann.
- Erstelle im Verzeichnis der PHP Datei ein Bash Script, bspw. nextcloud.sh
- Editiere diese Datei und füge die folgenden Zeilen ein
#! /bin/bash
env -i /opt/alt/php83/usr/bin/php -f $PWD/httpdocs/nextcloud/cron.php
Die erste Zeile sagt dem Server, dass es sich um ein BASH Script handelt. In der zweiten Zeile folgt die Ausführung der PHP Datei mit der zur Website passenden PHP Version (wie unter Verfügbare PHP-CLI Versionen aufgelistet). Gegebenenfalls musst Du noch den Pfad zur Datei anpassen, wenn Deine Nextcloud Installation nicht unter httpdocs/nextcloud liegt.
- Erstelle nun im Plesk die geplante Aufgabe wie oben (Cronjob im Kundenmenü (Plesk) erstellen) beschrieben.
Geplante Aufgaben in TYPO3 automatisieren
TYPO3 8 LTS / TYPO3 9 LTS / TYPO3 10 LTS
TYPO3 Extension scheduler (Planer)
Die mit TYPO3 mitgelieferte Extension scheduler (Planer) ermöglicht die regelmäßige Ausführung von Aufgaben in TYPO3. Zu diesen Aufgaben gehören beispielsweise:
- Aktualisierung von Statistiken
- Newsletter Versand
- Neuindexierung für die Suchfunktion
- Bereinigen der Datenbank
Bisher konnte man für jede dieser Aufgaben einen eigenen cronjob einrichten. Im Scheduler können die Aufgaben in einem Zeitplan erfasst werden und es ist nur noch ein cronjob erforderlich, um den Planer aufzurufen und die darin festgelegten Aufgaben auszuführen.
Cronjob einrichten
Im Verzeichnis /httpdocs/typo3cms/projekt1/typo3conf liegt in unseren Hostingpaketen die Datei scheduler.sh aktuell mit folgendem Inhalt:
#! /bin/bash
env -i /usr/local/bin/php7-72LATEST-CLI -f $PWD/typo3cms/projekt1/typo3/sysext/core/bin/typo3 scheduler:run
In dieser Datei musst Du noch die Pfadangaben sowie die PHP-Version, je nach eingestellter PHP Version in der Domain, anpassen. Hier sollte die gleiche PHP-Grundversion eingestellt werden. Zum Beispiel änderst Du die Zeile für die PHP Version 7.3 wie folgt
env -i /opt/alt/php73/usr/bin/php -f $PWD/httpdocs/typo3cms/ ...usw
Liegt das TYPO3 Projekt in einem anderen Verzeichnis, musst Du den Pfadnamen innerhalb der Datei noch entsprechend anpassen.
Weiter oben findest Du eine Übersicht über die verfügbaren PHP-CLI Versionen und wie Du das Script über einen Cronjob automatisiert ausführen lassen kannst.