Keine automatischen cron.jobs laufen

thegab

Benutzer
Mitglied seit
05. Mai 2016
Beiträge
16
Punkte für Reaktionen
1
Punkte
9
Hallo,

ich habe ein sehr merkwürdiges Problem mit der Ausführung von cron-jobs bei der Nutzung von Nextcloud. Das einzige funktionierende ist der AJAX. Das ist allerdings meiner Meinung nach eher sinnfrei, insbesondere wenn man sich nicht oft einloggt.

Ich habe mittlerweile sämtliche Kombinationen der unterschiedlichen Einstellungen durch. Bei der Anlage der Jobs im Aufgabenplaner habe ich folgende Befehle genutzt:

2019-01-19 16_24_18-Window.jpg

Als Webserver nutze ich eine DS218+ auf DSM 6.2.1-23824 Update 4 mit Apache 2.4 und php7.0 (5.6 ist auch noch aktiviert).

Merkwürdig ist jedoch, dass das ganze prinzipiell auch funktioniert, aber eben nur, wenn ich das manuell über den Aufgabenplaner anstoße ("Ausführen"). Die zeitgesteuerten Ereignisse werden nicht ausgeführt. Ich vermute, dass die cron-jobs systemseitig deaktiviert sind... Wie kann ich das überprüfen und sie ggf. wieder aktivieren?

2019-01-19 16_37_35-Window.png

Was auch komisch ist, ist dass über andere jobs eingetragen sind (vi /etc/crontab) und, dass die DS nicht automatisch hoch- und runterfährt, obwohl das hinterlegt ist.
2019-01-19 16_21_30-Window.jpg

Grüße
thegab
 

Fusion

Benutzer
Sehr erfahren
Mitglied seit
06. Apr 2013
Beiträge
14.135
Punkte für Reaktionen
898
Punkte
424
Also meine /etc/crontab sieht folgendermaßen aus (alle 3 Minuten den Job laufen lassen). Habe den Job direkt dort angelegt und nicht den Aufgabenplaner benutzt.
Code:
*/3     *       *       *       *       root    /bin/su http -s /bin/sh -c '/usr/local/bin/php70 -c /usr/syno/etc/packages/WebStation/php70/conf.d/user_settings.ini -f /var/services/web/nextcloud/cron.php'

Wenn man es via Aufgabenplaner einträgt (ich habe es nicht probiert) hätte ich
Code:
/bin/su http -s /bin/sh -c '/usr/local/bin/php70 -c /usr/syno/etc/packages/WebStation/php70/conf.d/user_settings.ini -f /var/services/web/nextcloud/cron.php'
probiert. Oder mit einem angelegten Profil (nicht vergessen den Profil-String und den Ort der eigenen NC-Installation anzupassen an die eigene DS. Herausfinden kann man es z.B. über die webstation_vhost.ini die ebenfalls im Verzeichnis liegt)
Code:
/bin/su http -s /bin/sh -c '/usr/local/bin/php70 -c /usr/syno/etc/packages/WebStation/php_profile/029a0507-4ba52a5f-84d0-6a1129c33c05/conf.d/user_settings.ini -f /var/services/web/nextcloud/cron.php'
Ich hatte mindestens zwei Profile für den vHost gefunden, nur das aktuelle hat funktioniert, wo in der ini Datei auch die Extensions aufgeführt sind, die sich auch im PHP-Profile in der Web Station GUI finden.
Woher das alte Überbleibsel kam weiß ich nicht.
 
Zuletzt bearbeitet:

thegab

Benutzer
Mitglied seit
05. Mai 2016
Beiträge
16
Punkte für Reaktionen
1
Punkte
9
Vielen Dank für die Antwort, den untersten Befehl habe ich mal als benutzerdefiniertes Skript (alle 5 Minuten) hinzugefügt. Gleiches Verhalten, bei manuellem Start funktioniert es, danach nicht mehr.

2019-01-19 18_32_17-Window.jpg
 

Fusion

Benutzer
Sehr erfahren
Mitglied seit
06. Apr 2013
Beiträge
14.135
Punkte für Reaktionen
898
Punkte
424
Du meinst es wird danach die "Nächste Ausführung" weiter gezählt, aber in der NC GUI wird der Cronjob nicht als "vor 1 Minute ausgeführt" gelistet?
Oder wird der Job auch gar nicht erst ausgeführt?
 

thegab

Benutzer
Mitglied seit
05. Mai 2016
Beiträge
16
Punkte für Reaktionen
1
Punkte
9
Genau, das System erkennt, wann die nächste Ausführung sein müsste, siehe rechts oben auf dem obigen Screenshot. Die Uhrzeit des Schreenshots war 18:32. Es hätte also um 18:25 und 18:30 auch bereits einen Eintrag geben müssen. Es wird aber nichts ausgeführt. Nextcloud erkennt dann auch keine weitere Ausführung des jobs.

Screen von 18:48 in Nextcloud:
2019-01-19 18_48_28-Window.jpg
 

Fusion

Benutzer
Sehr erfahren
Mitglied seit
06. Apr 2013
Beiträge
14.135
Punkte für Reaktionen
898
Punkte
424
Kannst du mal die Detaileinstellungen deiner Aufgabe zeigen?

Ich habe das gerade probiert mit einem minütlichen Job, und das funktioniert inkl. dass die NC GUI den Lauf bemerkt.

Edit:
Kannst auch im Aufgabenplaner mal in den Einstellungen ein Log aktivieren.
Und für deine Aufgabe mal noch ein "/bin/env;" vorne an den Befehl anfügen, also "/bin/env;/bin/su ....."
 

thegab

Benutzer
Mitglied seit
05. Mai 2016
Beiträge
16
Punkte für Reaktionen
1
Punkte
9
Klar, gerne. Wie gesagt, funktionieren tut das ganze ja, nur eben nicht per "Planer"

2019-01-19 18_59_13-Window.jpg
2019-01-19 18_59_19-Window.jpg
2019-01-19 18_59_25-Window.jpg

Wie oben auch geschrieben, scheinen die anderen Jobs (vom System) auch nicht zu gehen, die Systemzeit ist über 4 Tage. Eigentlich sollte die DS sich jeden Tag ausschalten.
2019-01-19 19_01_27-Window.jpg
2019-01-19 19_01_51-Window.jpg

Gibt es einen Befehl um zu überprüfen, ob die crons prinzipiell funktionieren?
 

Fusion

Benutzer
Sehr erfahren
Mitglied seit
06. Apr 2013
Beiträge
14.135
Punkte für Reaktionen
898
Punkte
424
Kannst z.B. einfach eine leere Datei erzeugen mit (halt passenden gemeinsamen Ordner-Name anpassen)
Code:
touch /volume1/downloads/$(date +%m%d%s).txt
 

thegab

Benutzer
Mitglied seit
05. Mai 2016
Beiträge
16
Punkte für Reaktionen
1
Punkte
9
Kannst z.B. einfach eine leere Datei erzeugen mit (halt passenden gemeinsamen Ordner-Name anpassen)
Code:
touch /volume1/downloads/$(date +%m%d%s).txt

Solange ich die Aufgabe nicht manuell mal ausführen lasse, passiert nichts. "Diese Aufgabe wurde noch nicht gestartet."

Gibt es einen Befehl, cronjobs generell zu deaktivieren oder neu erstellen zu lassen?
 

Fusion

Benutzer
Sehr erfahren
Mitglied seit
06. Apr 2013
Beiträge
14.135
Punkte für Reaktionen
898
Punkte
424
Wird denn der neue Task in der crontab eingetragen?
 

Fusion

Benutzer
Sehr erfahren
Mitglied seit
06. Apr 2013
Beiträge
14.135
Punkte für Reaktionen
898
Punkte
424
Sicher?

Was ist Task 13 und Task 14?

Ein ... kann auch nicht schaden
Code:
synoservice --restart crond

Und ich würde mal aufräumen und die ganzen nc Einträge rausschmeißen, die teilweise gar nicht funktionieren können (Bsp. /bin/su und dann kein Benutzer angegeben unter dem der Befehl ausgeführt werden soll). Ist zwar auskommentiert, aber...
 

thegab

Benutzer
Mitglied seit
05. Mai 2016
Beiträge
16
Punkte für Reaktionen
1
Punkte
9
Ich habe das Problem eben gelöst. Kam mir eh komisch vor, dass keine Tasks dort eingetragen wurden. Grund war, dass die App cronjob editor die Datei scheinbar gesperrt hat. Nach entfernen des Programms werden die Aufgaben auch wieder in etc/crontab eingetragen, zwar verschlüsselt (synoschedtask), aber damit gehen die jobs endlich wieder.

Vielen Dank!
 
Zuletzt bearbeitet von einem Moderator:
  • Like
Reaktionen: peterhoffmann

abrocksi

Benutzer
Mitglied seit
27. Dez 2013
Beiträge
238
Punkte für Reaktionen
78
Punkte
28
Hallo thegap & Fusion,

obwohl Dein/Euer Post schon älter ist, bin ich froh ihn gefunden zu haben, denn das Thema ist wieder aktuell. Nachdem ich Nextcloud 20 und PHP 7.4 installiert hatte, trat Dein beschiebenes Phänomen wieder auf: Startet man eine cron-Aufgabe mit dem Aufgabenplaner manuell an, dann klappt es. Verlässt man sich auf die "Planner"-Funktion dann nicht. Alles lief gut mit älteren NC Versionen und PHP 7.0, 7.2, 7.3; nur eben mit PHP 7.4 nicht mehr.

Ich habe ebenfalls den cronjob editor deinstalliert und siehe da: die Jobs liefen wieder.

besten Dank, gutes neues Jahr und
cheers,
abrocksi
 
  • Like
Reaktionen: peterhoffmann


 

Kaffeautomat

Wenn du das Forum hilfreich findest oder uns unterstützen möchtest, dann gib uns doch einfach einen Kaffee aus.

Als Dankeschön schalten wir deinen Account werbefrei.

:coffee:

Hier gehts zum Kaffeeautomat