Nextcloud Hub #19 und Hintergrund-Aufgaben ( cron )

Status
Für weitere Antworten geschlossen.

Tuxnet

Benutzer
Mitglied seit
02. Jan 2019
Beiträge
582
Punkte für Reaktionen
67
Punkte
48
Hallo zusammen,
ich habe da Mel eine Frage bezüglich der Hintergrund-Aufgaben.

Bis Dato lief alles über AJAX, aber seit zwei Tagen werden die Aufgaben nichtmehr abgearbeitet.
Keine Ahnung warum, ich habe am System nichts verändert.

Also habe ich das mal mit dem cron versucht.
Ich bin nach folgender Anleitung gegangen ( https://zeitfresser.net/nextcloud-cronjob-ueber-synology-erstellen/ )

Leider funktioniert es nicht ;-)
Was mich wundert, im nextcloud Webinterface steht
"Den System-Cron-Dienst verwenden, um die Datei cron.php alle 5 Minuten aufzurufen. Die cron.php muss durch den Systemnutzer "http" ausgeführt werden."
dieser Benutzer gibt es aber nicht.


Danke
 

Andy+

Benutzer
Sehr erfahren
Mitglied seit
25. Jan 2016
Beiträge
5.042
Punkte für Reaktionen
328
Punkte
189
Es gibt die normalen, bzw. sichtbaren User, oder User und Gruppen im "Hintergrund". http ist eine der letzteren. Die Einträge in der

/etc/crontab

sehen dann so aus, wie

9-59/10 * * * * root sudo -u http /usr/local/bin/php72 -f /volume1/web/nextcloud/cron.php
16 9,16 * * * root sudo -u http /usr/local/bin/php72 -f /volume1/web/nextcloud/occ files:scan [nextcloud user]
12 21 * * * root sudo -u http /usr/local/bin/php72 -f /volume1/web/nextcloud/occ files:scan --all

oder so ähnlich.
 
  • Like
Reaktionen: Tuxnet

Tuxnet

Benutzer
Mitglied seit
02. Jan 2019
Beiträge
582
Punkte für Reaktionen
67
Punkte
48
Vielen Dank,
Ich werde das heute umlaufe des Tages mal testen
 

luddi

Benutzer
Sehr erfahren
Mitglied seit
05. Sep 2012
Beiträge
3.242
Punkte für Reaktionen
586
Punkte
174
Bei mir sieht der Befehl wie folgt aus:

Bash:
/bin/su -s /bin/sh -c "/usr/local/bin/php73 -f /var/services/web/nextcloud/cron.php" http

Das einzige worauf du achten musst ist, die richtige php Version und den Pfad zur Nextcloud entsprechend anpassen.

Das ganze lässt sich komfortabel über den Aufgabenplaner direkt in DSM anlegen.

dsm-task-nextcloud-cron.png
 
  • Like
Reaktionen: syn_squan und Tuxnet

Andy+

Benutzer
Sehr erfahren
Mitglied seit
25. Jan 2016
Beiträge
5.042
Punkte für Reaktionen
328
Punkte
189
Deine Zeile hat bei mir früher ganz ähnlich ausgesehen

10 * * * * root /bin/su -s /bin/sh -c "/usr/local/bin/php72 -f /volume1/web/nextcloud/cron.php" http

allerdings halt als Eintrag in der cron-Datei. Danach dann

/usr/syno/sbin/synoservicectl --restart crond

oder ggf.

sudo /usr/syno/sbin/synoservicectl --restart crond

aber die letzte Variante habe ich noch nie verwendet
 
  • Like
Reaktionen: Tuxnet

Tuxnet

Benutzer
Mitglied seit
02. Jan 2019
Beiträge
582
Punkte für Reaktionen
67
Punkte
48
Vielen dank,
alles funktioniert wie es soll.

Ich habe folgendes in /etc/crontab eingetragen

Rich (BBCode):
*/15 * * * * root sudo -u http /usr/local/bin/php73 -f /volume1/web/cron.php
 

luddi

Benutzer
Sehr erfahren
Mitglied seit
05. Sep 2012
Beiträge
3.242
Punkte für Reaktionen
586
Punkte
174
Du kannst den job ruhig alle 5 Minuten ausführen. So auch die Empfehlung von Nextcloud, siehe Doku.
To run a cron job on a *nix system, every 5 minutes, [...]
 

muschel333

Benutzer
Mitglied seit
07. Jul 2020
Beiträge
9
Punkte für Reaktionen
2
Punkte
3
Vielen dank,
alles funktioniert wie es soll.

Ich habe folgendes in /etc/crontab eingetragen

Rich (BBCode):
*/15 * * * * root sudo -u http /usr/local/bin/php73 -f /volume1/web/cron.php

Hallole zusammen,
ich klinke mich mal ein. Habe Probleme mit der 19er Version (freshinstall), dass der Hintergrund Cron Dienst läuft und hab das mal so gemacht wie oben. Leider läuft er trotzdem nicht. Muss man den da nicht noch den config Pfad der entsprechenden phpversion mit geben?
Auf der anderen Seite wundert es mich, dass auch die Ajax oder Webcron Variante rot bleiben. Wo kann ich den da noch schauen wo es klemmt?
Wenn ich den cron.php von hand aufrufe sagt er sucess, aber Hintergrunddienst aktualisiert das Datum nicht das er gelaufen ist.

LG Tom
 

Tuxnet

Benutzer
Mitglied seit
02. Jan 2019
Beiträge
582
Punkte für Reaktionen
67
Punkte
48
Guten Morgen Tom

Welche php Version hast du installiert,
Wo liegt deine nc ( volume1/Web/? )
 

muschel333

Benutzer
Mitglied seit
07. Jul 2020
Beiträge
9
Punkte für Reaktionen
2
Punkte
3
Guten Morgen,

der Host liegt auf volume1/web/nextcloud und die Daten auf volume1/nextcloud-data
Es hatte ja mal funktioniert, zumindest mit dem Hintergrunddienst über Ajax. Dann habe ich Files upgeloadet und auch apps installiert und deinstalliert und irgendwann bleib der Hintergrunddienst rot bzw. orange. Ich hab das Gefühl der Hintergrunddienst läuft nicht durch obwohl der success sagt wenn man ihn von Hand aufruft (bei Webcron). Da müsste doch der Hintergunddienst das Datum wann er gelaufen ist mal aktualisieren? Bei mir steht dran das letzte mal gelaufen vor zwei Tagen. Ich habe echt keine Ahnung wo ich da schauen soll.

PHP Version 7.3 läuft und Apache 2.4
.
LG Tom
 

Tuxnet

Benutzer
Mitglied seit
02. Jan 2019
Beiträge
582
Punkte für Reaktionen
67
Punkte
48
Ich hatte genau die gleichen Problem,
das die Ajax Variante, warum auch immer ,ohne Grund nichtmehr lief. Habe den Fehler leider nie finden können. Wie sieht es mit Webcron aus ? Das lief bei mir problemlos.

https://www.cronjob.de
 

Crashandy

Benutzer
Mitglied seit
14. Mai 2014
Beiträge
263
Punkte für Reaktionen
82
Punkte
28
Hallo @muschel333,

das sieht ganz danach aus, als wären in einem Deiner Ordner die http-Rechte nicht vollständig gesetzt.
"volume1/web/nextcloud" und "volume1/nextcloud-data" Gruppe und Benutzer müssen http-Rechte haben.
Dies passiert zum Beispiel, wenn außerhalb der Webanwendung "Nextcloud", also in der DiskStation, Dateien in irgend welche Ordner kopiert werden.
Aus Deiner Pfadbeschreibung gehe ich davon aus, dass Du auf einer Synology DiskStation arbeitest.

Gruß
Crashandy

PS: Sorry, ich bin ja im Synology-Forum. Da ich sehr oft im Nextcloud-Forum bin, habe ich diese komische Anmerkung gemacht.
 

muschel333

Benutzer
Mitglied seit
07. Jul 2020
Beiträge
9
Punkte für Reaktionen
2
Punkte
3
Ich kann die Dateirechte nochmal setzen, hatte das gemacht gehabt:

chmod 777 -R /volume1/web/nextcloud
und
chown http:http: -R /volume1/web/nextcloud

sowie

chmod 777 -R /volume1/nextcloud-data
und
chown http:http: -R /volume1/nextcloud-data

müsste dann so korrekt sein? Wenn ja lass ich es mal drüber rennen

@Tuxnet
Bei mir läuft keines der 3 Hintergrunddienst Varianten mehr laut Datumangabe schon 2 Tage nicht mehr.
 

Tuxnet

Benutzer
Mitglied seit
02. Jan 2019
Beiträge
582
Punkte für Reaktionen
67
Punkte
48
Mach das mal bitte

chown -R http:http /volume1/web/
chown -R http:http /volume1/web/apps/
chown -R http:http /volume1/web/config/
chown -R http:http /volume1/web/themes/
chown -R http:http /volume1/Nextcloud-Database/
chown http:http /volume1/web/.htaccess
find /volume1/web/ -type f -print0 | xargs -0 chmod 777
find /volume1/web/ -type d -print0 | xargs -0 chmod 777
find /volume1/Nextcloud-Database/ -type d -print0 | xargs -0 chmod 777
 

luddi

Benutzer
Sehr erfahren
Mitglied seit
05. Sep 2012
Beiträge
3.242
Punkte für Reaktionen
586
Punkte
174
Der erste Befehl chown -R http:http /volume1/web reicht doch für alle darunter liegenden Verzeichnisse und Dateien weil der Befehl eben rekursiv mit "-R" ausgeführt wird. Also warum explizit die folgenden 4 Befehle ausführen?

chown -R http:http /volume1/web/apps/
chown -R http:http /volume1/web/config/
chown -R http:http /volume1/web/themes/
chown http:http /volume1/web/.htaccess
 

muschel333

Benutzer
Mitglied seit
07. Jul 2020
Beiträge
9
Punkte für Reaktionen
2
Punkte
3
Erledigt.
bei den find Befehlen (mit f) kam
operation not permitted
und (mit d)
permission denied

Habe mit und ohne sudo probiert

Keine Veränderung am Hintergrund Prozess, Datum wurde nicht aktualisiert
 

muschel333

Benutzer
Mitglied seit
07. Jul 2020
Beiträge
9
Punkte für Reaktionen
2
Punkte
3
Noch ein seltsamer Effekt:

Bisher stand: Letzte Ausführung vor zwei Tagen 15:57
Jetzt steht: Letzte Ausführung vor zwei Tagen 16:01

Wie geht das? Wir hier das Hintergrund cron Datum nicht richtig gesetzt?

Nachtrag, jetzt hab ich auf Ajax umgestellt, jetzt steht Letzte Ausführung vor zwei Tagen 16:01

Ist da nur die Anzeige kaputt? Wobei zu anfangs hat sie gestimmt.
 

Andy+

Benutzer
Sehr erfahren
Mitglied seit
25. Jan 2016
Beiträge
5.042
Punkte für Reaktionen
328
Punkte
189
Da ist sicher nichts kaputt. Die Zeile scheint korrekt

*/15 * * * * root sudo -u http /usr/local/bin/php73 -f /volume1/web/cron.php

Hast Du auch

/usr/syno/sbin/synoservicectl --restart crond

ausgeführt?

Dann sollten alle Nextcloud Dateien und Verzeichnisse http:http mit Berechtigungen, oktal 0775 aufweisen, jeweils rekursiv. 0777 braucht es nicht und ist nachteilig.
 

muschel333

Benutzer
Mitglied seit
07. Jul 2020
Beiträge
9
Punkte für Reaktionen
2
Punkte
3
Ja ich habe den cron restartet. Ich hab die ganze Diskstation restartet.

Könnte es möglich sein, dass nicht die richtige config der php73 angezogen wird und somit die essentiellen php module fehlen die ich für das php73 im der Webstation konfiguriert habe? Aber ich denke dann würde es Fehler hageln.
Was könnte ich den noch machen um zu sehen ob der Hintergrunddienst durchläuft, wenn schon das Datum nicht gesetzt wird.

Ach ja, die Uhrzeit hat sich wieder bisle bewegt:
Nachtrag: Jetzt steht 16:13

hintergrunddienst.jpg
 
Zuletzt bearbeitet:

Andy+

Benutzer
Sehr erfahren
Mitglied seit
25. Jan 2016
Beiträge
5.042
Punkte für Reaktionen
328
Punkte
189
Du musst freilich auch auf cron wechseln...
 
  • Like
Reaktionen: Tuxnet
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