Keine automatischen cron.jobs laufen

  • Ab sofort steht euch hier im Forum die neue Add-on Verwaltung zur Verfügung – eine zentrale Plattform für alles rund um Erweiterungen und Add-ons für den DSM.

    Damit haben wir einen Ort, an dem Lösungen von Nutzern mit der Community geteilt werden können. Über die Team Funktion können Projekte auch gemeinsam gepflegt werden.

    Was die Add-on Verwaltung kann und wie es funktioniert findet Ihr hier

    Hier geht es zu den Add-ons

Status
Für weitere Antworten geschlossen.

thegab

Benutzer
Registriert
05. Mai 2016
Beiträge
16
Reaktionspunkte
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
 
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:
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
 
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?
 
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
 
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 ....."
 
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?
 
Kannst z.B. einfach eine leere Datei erzeugen mit (halt passenden gemeinsamen Ordner-Name anpassen)
Code:
touch /volume1/downloads/$(date +%m%d%s).txt
 
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?
 
Wird denn der neue Task in der crontab eingetragen?
 
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...
 
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
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
Status
Für weitere Antworten geschlossen.
 

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