Cronjob startet nicht

Benares

Benutzer
Sehr erfahren
Mitglied seit
27. Sep 2008
Beiträge
7.041
Punkte für Reaktionen
771
Punkte
248
Folge mal den Hinweisen von Frogman. Zuerst muss sowas erstmal auf der Konsole richtig laufen.
Ich habe keine Cloud-Software installiert.
 

luddi

Benutzer
Mitglied seit
05. Sep 2012
Beiträge
2.209
Punkte für Reaktionen
172
Punkte
109
Zuerst bin ich Frogman´s Hinweisen gefolgt und habe die open_basedir auf "Null" gesetzt. Jedoch hat dies leider auch nichts gebracht.
Aber heute morgen nach einer guten erholsamen Nacht und einem ausgewogenen Frühstück habe ich folgendes gefunden.

Der Befehl den cron.php anzustoßen brachte immer folgende Fehlermeldung:
Rich (BBCode):
Another instance of cron.php is still running!

Einmal danach im web gesucht, schon wird man fündig...
"Cron can get into a deadlock #3221" Hier wird beschrieben, dass der Cron Service eine Lock Datei unter /data/cron.lock erzeugt und unter bestimmten Umständen diese nicht mehr löscht. Somit entstand diese Fehlermeldung in meiner Konsole.

Nach dem Löschen der besagten Lock Datei konnte ich das Kommando für das cron.php Skript erfolgreich absetzen.
Rich (BBCode):
/bin/su -s /bin/sh -c "/usr/bin/php -f /volume1/web/owncloud/cron.php" http

Und siehe da...

oc_cron_success.png

Nun gehe ich sehr stark davon aus, dass der Befehl auch aus der crontab richtig ausgeführt werden kann.

Danke @all die mich hier unterstützt und ihre Ideen eingebracht haben das Problem zu lösen.

Gruß
luddi
 

Ansorg

Benutzer
Mitglied seit
29. Jan 2014
Beiträge
109
Punkte für Reaktionen
0
Punkte
16
auf meiner DS mit aktuellem DSM 5.2 komme ich bis hierher

Code:
MX415> /bin/su -s /bin/sh -c "/usr/bin/php -f /volume1/web/owncloud/cron.php" http
Console has to be executed with the same user as the web server is operated
Current user: http
Web server user: admin

Wieso ist admin der user vom Webserver?

/volume1/OwnCloud, ebenso wie alle Verzeichnisse unter /volume1/web/ gehören natürlich "http" plus Gruppe "root"

Rich (BBCode):
drwxr-xr-x   13 http     root          4096 Aug 27 20:41 owncloud
drwxrwx---    9 http     root          4096 Sep 11 13:59 OwnCloud
Jetzt gehts mit dem OwnCloud cron nicht weiter :-(
 

MotD

Benutzer
Mitglied seit
24. Aug 2015
Beiträge
5
Punkte für Reaktionen
0
Punkte
0
Das Problem habe ich leider auch.

Ich hatte auf meiner RS214 Version DSM 5.2-5592 Update 3, eine Owncloud Version 8.1.1.3 laufen und dafür einen Cronjob aktiviert, der problemlos lief - der User für den Webserver war http.
An der Synology habe ich nichts verändert sondern lediglich die Owncloud Version auf 8.1.3 gebracht.
Nun ist der Web Server User admin - und mein Cronjob läuft nicht mehr.

Wenn ich versuche den manuell über die Console (Putty) zu starten bekomme ich folgende Fehlermeldung:
Could not open input file: /volume1/web/owncloud/cron.php

Berechtigungen für die Datei habe ich inzwischen für alle auf 7 gesetzt, Eigentümer ist nach wie vor root und Gruppe http.
Aber leider kein Erfolg....

Warum hat die Synology den Web Server User von http auf admin geändert?
Wie kann ich das rückgängig machen oder den Cronjob als admin zum laufen bekommen?

LG
MotD
 

MotD

Benutzer
Mitglied seit
24. Aug 2015
Beiträge
5
Punkte für Reaktionen
0
Punkte
0
Problem gefunden....

Der User für die config.php im config Verzeichnis wurde auf den User admin geändert.
Warum oder wodurch auch immer das passiert ist.
Interessanterweise auch für die config.sample.php

Nach Änderung des Besitzers lief alles wieder problemlos.
 

Fraggle

Benutzer
Mitglied seit
15. Mrz 2009
Beiträge
454
Punkte für Reaktionen
1
Punkte
18
Könntest Du es etwas klarer beschreiben?
Eventuell habe ich exakt das gleiche Problem, jedenfalls werden meine Feeds in Owncloud nicht mehr aktualisiert und im OC Backend erscheint bei Cronjobs eben, daß es zu lange nicht mehr aktualisiert wurde, ich tappe aber noch völlig im Dunkeln warum.
 

Frogman

Benutzer
Mitglied seit
01. Sep 2012
Beiträge
17.485
Punkte für Reaktionen
7
Punkte
414
MotD meint vermutlich, dass der Eigenümer der config-Dateien auf 'admin' geändert war und wieder auf 'http' geändert werden musste. Ansonsten - hast Du das hier umgesetzt?
 

Fraggle

Benutzer
Mitglied seit
15. Mrz 2009
Beiträge
454
Punkte für Reaktionen
1
Punkte
18
Danke, habe weder das Eine noch das andere umgesetzt.

Mir fiel erst jetzt auf, daß meine News nicht aktualisiert wurden. Ich hoffe, ich bin zeitig heute zuhause, dann kann ich beides prüfen.
 

Ansorg

Benutzer
Mitglied seit
29. Jan 2014
Beiträge
109
Punkte für Reaktionen
0
Punkte
16
Leider wird hier der User der config.PHP nach einer Weile wieder umgesetzt. Wer oder was macht das?
Ist etwas nervig und unzuverlässig
 

Frogman

Benutzer
Mitglied seit
01. Sep 2012
Beiträge
17.485
Punkte für Reaktionen
7
Punkte
414
Bei mir nicht. Eigentümer/Gruppe auf 'http' mit 0640 bei den Rechten.
 

Fraggle

Benutzer
Mitglied seit
15. Mrz 2009
Beiträge
454
Punkte für Reaktionen
1
Punkte
18
config.php im Ordner /volume1/web/Owncloud/config
Code:
-rw-r-----    1 http     http           733 May 25 20:49 config.php

Frogmans link:
von (was bis 2.11. funktioniert hat
Code:
*/5     *       *       *       *       root   php -f /volume1/web/owncloud/cron.php
zu
Code:
*/5     *       *       *       *       root    /bin/su -s /bin/sh -c "/usr/bin/php -f /volume1/web/owncloud/cron.php" http
geändert. Scheint auch nicht funktioniert zu haben.

Ich habe es über cronjobs "App" eingerichtet und save& restart versucht.
 
Zuletzt bearbeitet:

Benares

Benutzer
Sehr erfahren
Mitglied seit
27. Sep 2008
Beiträge
7.041
Punkte für Reaktionen
771
Punkte
248
"Owncloud" oder "owncloud"?
 

Fraggle

Benutzer
Mitglied seit
15. Mrz 2009
Beiträge
454
Punkte für Reaktionen
1
Punkte
18
kleingeschrieben.

Der Pfad zur config.php:
/volume1/web/owncloud/config/
 

Fraggle

Benutzer
Mitglied seit
15. Mrz 2009
Beiträge
454
Punkte für Reaktionen
1
Punkte
18
Eventuell bin ich einen Schritt weiter.

Dieser Beitrag http://www.synology-forum.de/showth...-startet-nicht&p=541136&viewfull=1#post541136
half.

Es war wohl ein Deadlock auch bei mir. Über die Konsole konnte ich zuvor den cronjob nicht starten, ich bekam die gleiche Fehlermeldung. darauf hin die Lock Datei gelöscht und erneut über die Konsole gestartet. Dann lief es. Ich hoffe, nach 15 Minuten läuft es auch noch :)

Besten Dank aber schon mal :)

Edit:
Läuft jetzt einwandfrei :)
 
Zuletzt bearbeitet:

Fraggle

Benutzer
Mitglied seit
15. Mrz 2009
Beiträge
454
Punkte für Reaktionen
1
Punkte
18
Interessanterweise hatte ich nun erneut das Problem. Ohne daß irgendetwas geändert wurde.
Es gab einen Deadlock und der Eigentümer von config.php war wieder admin anstatt http. Was könnte das verursachen?
 

Fraggle

Benutzer
Mitglied seit
15. Mrz 2009
Beiträge
454
Punkte für Reaktionen
1
Punkte
18
Hmm, irgendwo scheint bei mir immer noch der Wurm drin zu sein.
Also Deadlock war eigentlich weg, in der Konsole ausführen klappte auch, es wird aber nicht mehr im Intervall ausgeführt.
Besitzer/Gruppe ist http, Dateiberechtigungen 640. Oder muß es 777 sein?
 

Fraggle

Benutzer
Mitglied seit
15. Mrz 2009
Beiträge
454
Punkte für Reaktionen
1
Punkte
18
Hat keiner eine Idee?

Hier mal die Datei etc/crontab:
Code:
#minute hour  mday  month   wday  who  command
*/15         *         *         *           *     root    /bin/su -s /bin/sh -c "/usr/bin/php -f /volume1/web/owncloud/cron.php" http

In der Konsole ausgeführt bewirkt /bin/su -s /bin/sh -c "/usr/bin/php -f /volume1/web/owncloud/cron.php" http auch den erfolgreichen Start, Owncloud News wird aktualisiert. Aber irgendwie wird das nicht im eingestellten 15 Minuten Rhythmus durchgeführt.

Ich hoffe jemand weiß Rat, ich benutze den Feed Aggregator um Stellenangebote zentral zu sammeln.
 

Fraggle

Benutzer
Mitglied seit
15. Mrz 2009
Beiträge
454
Punkte für Reaktionen
1
Punkte
18
Keine Ahnung warum, aber jetzt geht es wieder. Ich habe lediglich einmal an der Konsole ausgeführt und dann nochmal in der Crontab den Eintrag erneuert.
 

Andy+

Benutzer
Mitglied seit
25. Jan 2016
Beiträge
3.916
Punkte für Reaktionen
118
Punkte
129
Die ownCloud-Prozesse, die über die crontab laufen, sind so eine Sache. Was in Version 8.1.x lief geht in 8.2.x nicht mehr und Version 9 steht vor der Tür. Und was in 8.2.x geht funktioniert in DSM 6 Beta 2 auch nicht mehr. Das sollte innerhalb von ownCloud gelöst werden. Ich habe das Problem, daß ich Freigabeverzeichnisse als External Storage in ownCloud eingebunden haben. Unter DSM 5.2 läuft zur Zeit ownCloud 8.2.2.2 wie geschmiert, mit folgenden Einträgen:

0,10,20,30,40,50 * * * * root /bin/su -s /bin/sh -c "/usr/bin/php -f /volume1/web/owncloud/cron.php" http >> /volume1/web/owncloud/data/logs/cron_php_$(date +\%Y-\%m-\%d).log 2>&1

0 0 * * * root crond -bS -l 0 -L cron_logging.log -c /volume1/web/owncloud/data/logs

0,30 7-22 * * * root /bin/su -s /bin/sh -c "cd /volume1/web/owncloud && /usr/bin/php -f occ files:scan rescan" http >> /volume1/web/owncloud/data/logs/cron_rescan_rescan_$(date +\%Y-\%m-\%d_\%H-\%M-\%S).log 2>&1

10 0 * * * root /bin/su -s /bin/sh -c "cd /volume1/web/owncloud && /usr/bin/php -f occ files:scan --all" http >> /volume1/web/owncloud/data/logs/cron_rescan_all_$(date +\%Y-\%m-\%d_\%H-\%M-\%S).log 2>&1

Bin mal gespannt ...... :confused:
 

maalik

Benutzer
Mitglied seit
05. Feb 2016
Beiträge
619
Punkte für Reaktionen
5
Punkte
38
Hallo an alle. Nachdem ich das gleiche Problem hatte wollte ich kurz für alle anderen Laien eine Anleitung schreiben, die wie ich vorher noch nicht groß mit SSH gearbeitet haben oder das nicht ganz verstehen:

Zuerst muss wahrscheinlich über SSH der user des owncloud-Verzeichnisses auf http gesetzt werden, sonst kommt folgender Fehler:
Rich (BBCode):
Console has to be executed with the same user as the web server is operated
Current user: http
Web server user: admin

Das macht ihr, indem ihr folgenden Code in SSH eingebt:

Rich (BBCode):
chown http /volume1/web/owncloud
(ggf. den Pfad anpassen, falls er bei euch anders aussieht)

Als nächstes müsst ihr ja den cron-job einfügen. Dafür gibt es bei SSH einen Editor, der sich vi nennt.
Öffnet mit diesem also die Datei mit folgendem Befehl:

Rich (BBCode):
vi /etc/crontab

Dann wird die aktuelle Datei in das Fenster geschrieben, wenn ihr was ändert, ändert es das noch nicht automatisch in der Datei.
Standardmäßig könnt ihr nun den Cursor mit den Pfeiltasten bewegen. Da wir ja ganz unten was einfügen wollen, gehen wir in die letzte Zeile in der was geschrieben ist.
vi hat Befehle, mit denen ihr sagen könnt, was und wie ihr nun was schreiben wollt, eine Erklärung findet ihr hier:
http://www.synology-wiki.de/index.php/Vi

Da wir ja nun eine neue Zeile wollen, drücken wir also den Buchstaben o. ("o - (open a new line) öffnet eine neue Zeile nach der Cursorposition und bewegt den Cursor an den Zeilenanfang")

Nun schreibt ihr folgendes:
Rich (BBCode):
*/15   *   *   *   *   root   /bin/su -s /bin/sh -c „/usr/bin/php -f /volume1/web/owncloud/cron.php“ http

Achtet hierbei genau darauf, dass alles richtig geschrieben ist. Vi ignoriert Leerzeichen, ihr könnt also ruhig so viele setzen, dass die einzelnen Werte quasi in der optisch richtigten Spalte stehen.

Das */15 am Anfang steht für "alle 15 Minuten". Das könnt ihr natürlich anpassen indem ihr die 15 einfach ändert.

Wenn ihr damit fertig seid, drückt ihr die ESC-Taste. Damit kommt ihr aus dem Schreibmodus raus und könnt mit dem Befehl
Rich (BBCode):
:wq
und einem Enter die geschriebenen Sachen in die Datei schreiben und Vi gleichzeitig beenden.

Nun musst ihr noch Cron neustarten. Dafür folgenden Befehl nutzen:
Rich (BBCode):
/usr/syno/sbin/synoservicectl –restart crond

Damit sollte alles funktionieren. Ihr könnt ja erstmal das */15 in */1 ändern, dann müsst ihr nicht 15 Minuten warten, ob alles funktioniert. Falls owncloud euch dann mitteilt, dass der Cron ausgeführt wurde, könnt ihr es ja wieder auf */15 ändern.
 
NAS-Central - Ihr Partner für NAS Lösungen
NAS-Central - The Home of NAS

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 

Hosted by netcup