Cron is suddenly not working anymore?

Danke für deine Bemühungen!

Also ich bin mir ziemlich sicher, dass es was mit PHP zu tun hat. Weil, sofern ich es vorher nicht übersehen habe, ist der Fehler bei mir auch erst aufgetreten, nachdem ich PHP 7.4. versucht habe zu installieren. Ich hab danach PHP7.4. mit purge wieder entfernt und 7.2. in apache wieder aktiviert.
Ich hab keine 2 NC Installationen … ich hab am Server nur ein NC und eine Collabora (mittels Docker).

Gibt es noch ein Log File, welches mir ev. helfen könnte?

Danke und Lg!

Was sagt ein “php -v” direkt in der Konsole aus?

Auch könntest du schauen, wie lange die cron.php läuft wenn du diese manuell aufrufst?

*/15 * * * * php -f /var/www/nextcloud/cron.php

Bei einigen Kunden, die sehr große NC Instanzen haben, läuft der Cron länger als 15 Minuten sodass die Ausführung angepasst werden muss solange der Cron läuft.

Du kannst noch im syslog (/var/log/syslog/ nachschauen, ob dein cronjob losgelaufen ist:

Mar 14 20:20:01 mpeUbuntuserver CRON[5517]: (www-data) CMD (php -f /var/www/owncloud/cron.php)
Mar 14 20:25:01 mpeUbuntuserver CRON[5525]: (www-data) CMD (php -f /var/www/owncloud/cron.php)
Mar 14 20:30:01 mpeUbuntuserver CRON[5547]: (www-data) CMD (php -f /var/www/owncloud/cron.php)

ich hab das jetzt mal nach deutsch verschoben.

Ja, Cron scheint gelaufen zu sein:

Mar 15 10:20:01 wolke-NUC CRON[577]: (www-data) CMD (php -f /var/www/nextcloud/cron.php)

Hier ist schon mal was faul … die NC Gui sagt 7.2.28 (was richtig sein sollte) und das sagt die Konsole: PHP 7.4.3 (cli) (built: Feb 23 2020 07:24:28)
Wie kann das sein wenn “sudo apt purge php7.4” ausgeführt wurde und 7.2 in apache aktiviert (a2enconf php7.2) bzw. 7.4 deaktiviert?

Mach mal folgendes:
sudo update-alternatives --set php /usr/bin/php7.2
sudo update-alternatives --set phar /usr/bin/phar7.2
sudo update-alternatives --set phar.phar /usr/bin/phar.phar7.2
sudo update-alternatives --set phpize /usr/bin/phpize7.2
sudo update-alternatives --set php-config /usr/bin/php-config7.2

und dann

php -v

1 Like

apt purge php7.4-cli

2 Likes

Vielen lieben Dank an Alle! :slight_smile:
Das hat mein Problem gelöst!

@JABAHOSTING danke, auch bei mir konnte das Problem dadurch behoben werden.
Nextcloud 16.04
Ubuntu 18.04 LTS

1 Like

Ich habe eben in meinen Admin-Bereich geschaut und gesehen, dass der Cron-Job scheinbar seit 6 Tagen nicht mehr gelaufen ist.

Durch

grep CRON /var/log/syslog

bin ich jedoch ziemlich sicher, dass die cron.php alle 5 Minuten aufgerufen wird.

Selbst wenn ich

sudo -u www-data php -f /var/www/cloud/cron.php

auf der Konsole eingebe ändert das nichts am Zustand.

Scheinbar funktioniert irgendetwas nicht, ich bekomme aber auch keine Konsolen- oder Logausgaben, die mich dem Problem näher bringen würden.

Die Nextcloud-Version ist (inzwischen) 22.0.0.

PHP gibt folgendes aus:

sudo -u www-data php -v
PHP 7.4.3 (cli) (built: Jul  5 2021 15:13:35) ( NTS )
Copyright (c) The PHP Group
Zend Engine v3.4.0, Copyright (c) Zend Technologies
    with Zend OPcache v7.4.3, Copyright (c), by Zend Technologies

Mein System ist ein Ubuntu 20.04.2 LTS mit aktuellen Patches.

Hat irgendjemand eine Idee, woran das liegen könnte?

EDIT:

Es scheint ein Problem mit dem Caching zu sein. Ich bin durch Zufall auf diese Ausgabe gestoßen:

sudo -u www-data php occ
An unhandled exception has been thrown:
OC\HintException: [0]: Memcache \OC\Memcache\APCu not available for local cache (Is the matching PHP module installed and enabled?)

EDIT 2:

Es war tatsächlich ein Problem mit APCu: Bei einem der letzten Updates muss es mir die PHP-Konfiguration angepasst oder überschrieben haben, sodass für die Konsolenversion APCu nicht mehr zur Verfügung stand. Dies hat die Cron-Ausführung nachhaltig geschädigt.

Nach der Anpassung der korrekten php.ini läuft nun wieder alles. Ich würde diesen Beitrag trotzdem stehen lassen - vielleicht hilft er ja jemandem.

Hi,
ich habe das gleiche Problem hier. Kannst du mir sagen, wie du das Cron Problem gelöst hast?
Ich verzweifle hier schon. :slight_smile:
Danke.

1 Like

Ich habe das Cronjob-Problem gelöst, indem ich den Cronjob von www-data so angepasst habe:

*/5  *  *  *  * php -f /var/www/html/nextcloud/cron.php --define apc.enable_cli=1

Scheinbar gab es beim Update auf 21.0.3 hier eine Änderung, die sich in der Doku versteckt hat: https://docs.nextcloud.com/server/21/admin_manual/configuration_server/caching_configuration.html#id1

Das Problem, dass der Befehl sudo -u www-data php occ die von @SmilingJ gepostete Fehlermeldung ausgibt, ist damit jedoch nicht gelöst. Da wäre ich für einen Tipp dankbar, denn ich kann in der php.ini bzgl. apcu scheinbar eintragen was ich will, ändern tut sich aber nichts…

Du machst die änderungen auch in der cli/php ini?

1 Like

Habe alles versucht. Fehlermeldung " * Letzte Cron-Job-Ausführung: Vor 3 Tagen. [Check the background job settings :arrow_upper_right:]" bleibt bestehen. Bin ratlos…
Gibt es weitere Tipps?
Danke.

Super danke das war die Lösung für mich nach dem Update auf 21.0.3.
Ich habe es dem crontab angehängt.

VG

VIELEN DANK

auch hier hat es geholfen den cron-befehl zu erweitern.
ausserdem hatte ich vorher noch diese meldung offen:

Letzte Aufgaben-Ausführung lief Vor XX Stunden. Etwas scheint falsch zu sein.
Eine Hintergrundaufgabe, die nach vom Benutzer importierten SSL-Zertifikaten
sucht, läuft noch.

auch die hat sich nach der cron korrektur erledigt

Du machst die änderungen auch in der cli/php ini?

Ja, ich habe das in der php.ini unter /etc/php/7.4/apache2/php.ini am Ende eingefügt, die Fehlermeldung beim Ausführen von sudo -u www-data php occ im Nextcloud-Verzeichnis bleibt jedoch leider bestehen.
Ich bin mir hier unsicher, ob ich etwas übersehen habe (evtl. muss ein bestimmter Dienst neugestartet werden - Apache und php7.4-fpm.service habe ich nach der Änderung jedoch neugestartet, was auch keine Abhilfe geschaffen hat.

Gib mal php --ini auf der Komandozeile ein
dann weisst du welche php.ini die ändern musst weil theoretisch kannst du eine php ini für apache haben eine für cli (CommandLine) und noch eine für fpm und du bekommt auser der loaded ini information auch noch gleich mitgeteilt welche zusätzlichen module geladen sind

1 Like

Vielen Dank @moboter, das war es!

Ich habe jetzt in der php.ini unter /etc/php/7.4/cli/ ganz am Ende apc.enable_cli=1 ergänzt und jetzt funktioniert auch der occ-Command wieder.

Vielen lieben Dank nochmal!

1 Like

Genau dieser Eintrag (allerdings in php/8.2/cli) hat auch bei mir das Problem gelöst. Danke!