So sieht die Meldung aus
Last background job execution ran 3 days ago. Something seems wrong.Häufige Ursachen
- Hintergrundjobs stehen auf AJAX oder Webcron statt Cron.
- Kein Crontab-Eintrag für den Webserver-Benutzer, oder der Eintrag steht in der root-crontab.
- cron.php bricht ab, z. B. wegen APCu in der CLI, falscher PHP-Version oder Speicherlimit.
- systemd-Timer deaktiviert oder nach einer Migration nicht mit umgezogen.
- Container-Setup ohne separaten Cron-Container.
Prüfen
- Eingestellten Modus für Hintergrundjobs anzeigen
sudo -u www-data php /var/www/nextcloud/occ config:app:get core backgroundjobs_mode - Crontab des Webserver-Benutzers anzeigen
crontab -u www-data -l - cron.php einmal manuell ausführen und Fehler sehen
sudo -u www-data php -f /var/www/nextcloud/cron.php; echo "exit $?" - Vorhandene systemd-Timer prüfen
systemctl list-timers | grep -i nextcloud
Lösung
- Modus auf Cron stellen:
occ background:cron. - Crontab für www-data anlegen:
*/5 * * * * php -f /var/www/nextcloud/cron.php. - Fehler aus dem manuellen Lauf beheben, z. B.
apc.enable_cli=1setzen. - Alternativ einen systemd-Timer nutzen, der alle 5 Minuten als www-data läuft.
- Nach einigen Minuten in den Admin-Einstellungen prüfen, ob die Zeit aktualisiert wurde.
Häufige Fragen
Warum nicht AJAX?
AJAX führt Jobs nur aus, wenn jemand die Weboberfläche nutzt, und nur einen pro Seitenaufruf. Bei wenig Nutzung bleiben Jobs liegen.
Darf cron.php als root laufen?
Nein. cron.php muss als Besitzer der Nextcloud-Dateien laufen, sonst entstehen Dateien mit falschen Rechten und Nextcloud bricht ab.