Seit Nextcloud24 funktioniert mein cronjob nicht mehr!

Hat etwas gedauert :wink:
Ich seh grad das hatten wir oben schon mal. Sorry das ich das jetzt erst ganz gelesen hab.

Mach mal
synoservicectl --status crond

Diesen Befehl gibt es leider ab DSM 7 nicht mehr.

Das Ergebnis bei mir:

systemctl status crond
● crond.service - Periodic Command Scheduler
   Loaded: loaded (/usr/lib/systemd/system/crond.service; static; vendor preset: disabled)
   Active: active (running) since Tue 2023-04-18 08:13:09 CEST; 1 weeks 6 days ago
 Main PID: 11300 (crond)
   CGroup: /taskscheduler.slice/crond.service
           └─11300 /usr/sbin/crond -n

May 01 09:00:01 DS1821 CROND[4620]: do_command.c:197 /usr/syno/bin/synoschedtask --run id=13
May 01 09:00:01 DS1821 sudo[4624]:     root : PWD=/root ; USER=http ; COMMAND=/usr/local/bin/php80 -f /volume1/...on.php
May 01 09:00:01 DS1821 sudo[4624]: pam_unix(sudo:session): session opened for user http by (uid=0)
May 01 09:00:11 DS1821 sudo[4624]: pam_unix(sudo:session): session closed for user http
May 01 09:00:11 DS1821 rm[4661]: uid: 0, euid: 0, arguments:["-rf" "/var/services/tmp/synoscheduler/logs/@4622"]
May 01 09:05:01 DS1821 CROND[5638]: do_command.c:197 /usr/syno/bin/synoschedtask --run id=13
May 01 09:05:01 DS1821 sudo[5642]:     root : PWD=/root ; USER=http ; COMMAND=/usr/local/bin/php80 -f /volume1/...on.php
May 01 09:05:01 DS1821 sudo[5642]: pam_unix(sudo:session): session opened for user http by (uid=0)
May 01 09:05:13 DS1821 sudo[5642]: pam_unix(sudo:session): session closed for user http
May 01 09:05:13 DS1821 rm[5686]: uid: 0, euid: 0, arguments:["-rf" "/var/services/tmp/synoscheduler/logs/@5640"]
Hint: Some lines were ellipsized, use -l to show in full.

Bei mir läuft es jetzt ohne Probleme, auch als manueller Eintrag in der crontab.
Irrtümlicherweise habe ich und übrigens auch @Nanu, den Eintrag von @pr498te aus Beitrag 7 übernommen. Damit wird der Cron-Job nur jede Stunde einmal ausgeführt.

Der richtige und auch funktionierende Eintrag in der crontab lautet nun:

*/5	*	*	*	*	root	sudo -u http /usr/local/bin/php80 -f /volume1/web/nextcloud/cron.php

Da kann man hundertmal hinschauen und sieht den Wald von Bäumen nicht. :roll_eyes:
Der Status zeigt bei mir alle 5 Minuten die erfolgreiche Ausführung an.

systemctl status crond
● crond.service - Periodic Command Scheduler
   Loaded: loaded (/usr/lib/systemd/system/crond.service; static; vendor preset: disabled)
   Active: active (running) since Tue 2023-04-18 08:13:09 CEST; 1 weeks 6 days ago
 Main PID: 11300 (crond)
   CGroup: /taskscheduler.slice/crond.service
           └─11300 /usr/sbin/crond -n

May 01 10:40:11 DS1821 sudo[29837]: pam_unix(sudo:session): session closed for user http
May 01 10:45:01 DS1821 CROND[31034]: do_command.c:197 sudo -u http /usr/local/bin/php80 -f /volume1/web/nextcloud/cron.php
May 01 10:45:01 DS1821 sudo[31034]:     root : PWD=/root ; USER=http ; COMMAND=/usr/local/bin/php80 -f /volume1/web/nextcloud/cron.php
May 01 10:45:01 DS1821 sudo[31034]: pam_unix(sudo:session): session opened for user http by (uid=0)
May 01 10:45:09 DS1821 sudo[31034]: pam_unix(sudo:session): session closed for user http
May 01 10:50:01 DS1821 crond[11300]: database.c:271 /etc/crontab
May 01 10:50:01 DS1821 CROND[32249]: do_command.c:197 sudo -u http /usr/local/bin/php80 -f /volume1/web/nextcloud/cron.php
May 01 10:50:01 DS1821 sudo[32249]:     root : PWD=/root ; USER=http ; COMMAND=/usr/local/bin/php80 -f /volume1/web/nextcloud/cron.php
May 01 10:50:01 DS1821 sudo[32249]: pam_unix(sudo:session): session opened for user http by (uid=0)
May 01 10:50:10 DS1821 sudo[32249]: pam_unix(sudo:session): session closed for user http

Anmerkung:
Wenn man nicht nach jedem größeren Update von Synology die Einträge in der crontab wieder neu erstellen möchte, dann verwendet man besser den Aufgabenplaner, um diese Jobs zu erledigen.

Hallo @Crashandy! Zuerst einmal vielen Dank für Deine Unterstützung, das macht mich zuversichtlich, dass mein Problem irgendwann gelöst sein wird :sweat_smile:
Ich habe den Eintrag in meiner crontab entsprechend Deinem Vorschlag angepasst und anschließend den command systemctl status crond ausgeführt. Das Ergebnis macht mich etwas ratlos; hier das Ergebnis:

root@user-DS716:/volume1# systemctl status crond
● crond.service - Periodic Command Scheduler
Loaded: loaded (/usr/lib/systemd/system/crond.service; static; vendor preset: disabled)
Active: active (running) since Mon 2023-05-01 07:02:17 CEST; 9h ago
Process: 13246 ExecStartPre=/bin/mkdir -p /etc/cron.d/ (code=exited, status=0/SUCCESS)
Process: 13236 ExecStartPre=/bin/mkdir -p /var/spool/cron/ (code=exited, status=0/SUCCESS)
Main PID: 13249 (crond)
CGroup: /taskscheduler.slice/crond.service
└─13249 /usr/sbin/crond -n

May 01 15:05:01 user-DS716 sudo[14675]: root : PWD=/root ; USER=http ; COMMAND=/usr/local/bin/php74 -f /volume1/web/cron.php --define a…ble_cli=1
May 01 15:05:01 user-DS716 sudo[14675]: pam_unix(sudo:session): session opened for user http by (uid=0)
May 01 15:05:01 user-DS716 sudo[14675]: pam_unix(sudo:session): session closed for user http
May 01 15:05:01 user-DS716 CROND[14674]: do_command.c:537 This version of Nextcloud requires at least PHP 8.0
You are currently running …version
.
May 01 15:46:01 user-DS716 crond[13249]: database.c:271 /etc/crontab
May 01 16:05:01 user-DS716 CROND[3955]: do_command.c:197 sudo -u http php74 -f /volume1/web/cron.php --define apc.enable_cli=1
May 01 16:05:01 user-DS716 sudo[3955]: root : PWD=/root ; USER=http ; COMMAND=/usr/local/bin/php74 -f /volume1/web/cron.php --define ap…ble_cli=1
May 01 16:05:01 user-DS716 sudo[3955]: pam_unix(sudo:session): session opened for user http by (uid=0)
May 01 16:05:01 user-DS716 sudo[3955]: pam_unix(sudo:session): session closed for user http
May 01 16:05:01 user-DS716 CROND[3954]: do_command.c:537 This version of Nextcloud requires at least PHP 8.0
You are currently running … version.

Auch nachdem ich den Eintrag in der crontab geändert habe, erhalte ich immer noch den Hinweis “Die letzte Aufgaben-Ausführung lief vor einem Tag. Etwas scheint falsch zu sein.” Aber was?

Warum macht Dich das Ergebnis ratlos?

  1. php74 muss in Deinem ausführenden Befehl durch php80 ersetzt werden
  2. –define a…ble_cli=1 ist absolut überflüssig, wenn Du Dein PHP-Profil richtig eingerichtet hast.

Die php-Profile sind bei mir genauso eingerichtet wie von Dir beschrieben!
Woher der ausführbare Befehl mit php74 kommt, ist mir schleierhaft! Ich habe phpMyAdmin installiert und das läuft mit php74. Ich habe auch keine Möglichkeit, da die php-Version zu ändern. Eine andere Erklärung hätte ich jetzt nicht für den Eintrag php74.

Und auch keine Idee, wo dieser command mit php74 abgelegt ist! :thinking:

phpMyAdmin hat mit all den Sachen hier nichts zu tun. Es ist ein Dienst welcher wirklich noch mit PHP 7.4 läuft, da Synology hier einen eigenen separaten Webservice benutzt.
Das Verzeichnis /volume1/web, ist der Webservice von den Synology-Benutzern.
In welcher crontab hast Du denn nun den Eintrag geändert?
Ich hoffe jetzt mal nicht hier:

/etc.defaults/crontab

Die richtige crontab, welche vom System verarbeitet wird, liegt an dieser Stelle:

/etc/crontab

Und wenn Du dort diese Zeile zu den anderen vorhandenen Einträgen hinzufügst, dann wird Dir bei dem Status auch die richtige COMMAND angezeigt.

MAILTO=""
PATH=/sbin:/bin:/usr/sbin:/usr/bin:/usr/syno/sbin:/usr/syno/bin:/usr/local/sbin:/usr/local/bin
#minute	hour	mday	month	wday	who	command
*/5	*	*	*	*	root	sudo -u http /usr/local/bin/php80 -f /volume1/web/cron.php
39	22	*	*	0	root	/usr/syno/bin/synoschedtask --run id=28
10	1	28	*	*	root	/usr/syno/bin/synoschedtask --run id=12
...
...
 root : PWD=/root ; USER=http ; COMMAND=/usr/local/bin/php80 -f /volume1/web/cron.php

Wichtig ist, dass der Cron-Job mit PHP 8.0 ausgeführt wird, sonst kommt eben der Fehler:
This version of Nextcloud requires at least PHP 8.0

1 Like

Hallo Crashandy, /etc/crontab/ war der entscheidende Hinweis! :sweat_smile: und genau dort war natürlich auch der command mit php74 abgelegt. Nachdem ich den Eintrag entsprechnd berichtigt hatte, läuft jetzt alles so, wie es sein soll!
Ich hatte die Vermutung, dass es da noch eine andere crontab geben müsse und hatte danach gesucht - allerdings oberhalb der Ebene /volume1/ und habe dann nur eine crontab in meinem Nextcloud-Ordner gefunden. Die konnte naturlich nichts bewirken :stuck_out_tongue_closed_eyes:
Also nochmals ganz herzlichen Dank für Deine Unterstützung!

This topic was automatically closed after 21 hours. New replies are no longer allowed.