Cronjob startet nicht

Status
Für weitere Antworten geschlossen.

Korialtras

Benutzer
Mitglied seit
13. Jun 2014
Beiträge
4
Punkte für Reaktionen
0
Punkte
0
Hallo,

Nach einiger Zeit wurde mir das Webinterface der Owncloud dank AJAX zu behäbig. Deswegen wollte ich auf den Systemcron umsteigen.
Habe dazu entsprechen im Crontab einen Eintrag erzeugt und den Crondienst neu gestartet. Jedoch kann ich im Owncloud Ui kein starten der cron.php verzeichnen.
Testweise hatte ich die Owncloud mal auf Webcron umgestellt und das cron.php per Browser aufgerufen was klappte.

Meine crontab sieht dabie so aus, der zweite Eintrag sollte eigentlich das Skript starten.

#minute hour mday month wday who command
11 8 * * 1,2,3,4,6 root /usr/syno/bin/synopkg chkupgradepkg
*/5 * * * * root /volume1/web/owncloud/cron.php
0 0 1 * * root /usr/syno/bin/syno_disk_health_record
20 0 * * * root /usr/syno/bin/timebkp recycle_all
20 10 * * 2,5 root /usr/syno/sbin/synoupgrade --fetch-all
30 6 * * 5 root /var/packages/AntiVirus/target/bin/synoavscan --all
0 23 * * * root /usr/syno/bin/syno_poweroff_feasible_check
5 6 * * 0,2,3,4,5,6 root /usr/syno/bin/timebkp create_version --unique 7
0 12 * * * root /tmp/synoschedtask --run id=3
0 13 * * * root /tmp/synoschedtask --run id=4

Vielleicht übersehe ich einfach etwas und ihr könnt mir helfen.

Mfg
Stephan
 

luddi

Benutzer
Sehr erfahren
Mitglied seit
05. Sep 2012
Beiträge
3.259
Punkte für Reaktionen
600
Punkte
174
Hi,

probiere bitte folgenden Befehl in der /etc/crontab

Rich (BBCode):
*/5 * * * * root php -f /volume1/web/owncloud/cron.php

Steht ja genau so im ownCloud Administrator´s Manual.

Gruß
luddi
 
Zuletzt bearbeitet:

Korialtras

Benutzer
Mitglied seit
13. Jun 2014
Beiträge
4
Punkte für Reaktionen
0
Punkte
0
Vielen Dank, genau der Zusatz fehlte mir. Läuft jetzt.
 

luddi

Benutzer
Sehr erfahren
Mitglied seit
05. Sep 2012
Beiträge
3.259
Punkte für Reaktionen
600
Punkte
174
Hi @all,

nun bin ich selbst am straucheln... Momentan verwende ich OwnCloud 7.0.6 auf DSM 5.1-5055.
Der Crontab wird nicht mehr ausgeführt so wie ich es hier in Post #2 gezeigt habe. Nun ist owncloud der Meinung, dass der auszuführende Benutzer root und nicht http sei.

Rich (BBCode):
~ # php -f /volume1/web/owncloud/cron.php 
Console has to be executed with the same user as the web server is operated
Current user: root
Web server user: http
Unexpected error!

Wie bekomme ich den crontab für owncloud wieder zum laufen? Denn dies funktioniert NICHT:
Rich (BBCode):
*/5 * * * * http php -f /volume1/web/owncloud/cron.php

Hat jemand von euch eine zündende Idee wie ich die cron.php als user "http" ausführe?

Gruß
luddi
 

Tommes

Benutzer
Sehr erfahren
Maintainer
Mitglied seit
26. Okt 2009
Beiträge
9.657
Punkte für Reaktionen
1.551
Punkte
314
Eben nur auf die Schnelle gefunden ohne nähere Kenntnisse darüber zu haben bzw. das ich jemals einen cron über den den Benutzer http habe ausführen wollte / musste.

Wirf mal einen Blick ins Wiki http://www.synology-wiki.de/index.php/Cron ziemlich weit unten wird das beschrieben. Ob bzw. ob es immer noch so klappt,weiß ich aber nicht. Wie gesagt, nur auf die Schnelle gefunden.

Tommes
 

luddi

Benutzer
Sehr erfahren
Mitglied seit
05. Sep 2012
Beiträge
3.259
Punkte für Reaktionen
600
Punkte
174
Hi Tommes,

vielen Dank für den Hinweis zum Wiki. Ich habe beide der dort beschriebenen Möglichkeiten versucht, jedoch leider ohne den gewünschten Erfolg zu erzielen.
Ich denke ich muss weiter im web nach einer Lösung suchen...

Gruß
luddi
 

dil88

Benutzer
Contributor
Sehr erfahren
Mitglied seit
03. Sep 2012
Beiträge
30.613
Punkte für Reaktionen
2.006
Punkte
829
Und was ist, wenn Du den "php -f"-Aufruf im crontab-Eintrag mit seinem Pfade versiehst?
 

luddi

Benutzer
Sehr erfahren
Mitglied seit
05. Sep 2012
Beiträge
3.259
Punkte für Reaktionen
600
Punkte
174
Direkt über die Konsole mit dem Befehl
Rich (BBCode):
/usr/bin/php -f /volume1/web/owncloud/cron.php
bekommt man die gleiche Fehlermeldung, dass die Konsole mit dem selben User wie der des Webservers aufgerufen werden muss:
Rich (BBCode):
Console has to be executed with the same user as the web server is operated
Current user: root
Web server user: http
Unexpected error!

Somit gehe ich davon aus, dass es selbst mit dem Pfad zu php in der crontab auch nicht besser funktionieren wird als die Direkteingabe in der Konsole.

In meinem Owncloud WebIf findet man unter den Admin-Einstellungen zum Punkt Cron folgende Information:
Rich (BBCode):
Last cron was executed at April 25, 2015 15:00. This is more than an hour ago, something seems wrong.

Nun dürft ihr mich gerne fragen was ich in diesem Zeitraum aktualisiert habe... evtl. DSM auf 5.1, oder ein neuen DSM 5.1 build (update etc)???
Die Antwort lautet jedenfalls: "Ich weiß es nicht!" :confused:

Aber irgend etwas muss sich unter DSM geändert haben, denn vorher hatte ich die Aktualisierung über Cron erfolgreich im Einsatz.

Gruß
luddi
 

dil88

Benutzer
Contributor
Sehr erfahren
Mitglied seit
03. Sep 2012
Beiträge
30.613
Punkte für Reaktionen
2.006
Punkte
829
Augenblick: Die Fehlermeldung bei Direkteingabe - wo der Pfad aufgrund der Environmentvariable PATH ja nicht erforderlich ist - ist doch ganz eindeutig. Du arbeitest mit root, es muss aber mit dem User http gearbeitet werden. Dies hast Du im cronjob sauber konfiguriert. Bau doch bitte testweise einmal den Pfad in den Aufruf der crontab ein, dann sind wir alle schlauer und müssen in diesem Punkt nicht weiter spekulieren.
 

luddi

Benutzer
Sehr erfahren
Mitglied seit
05. Sep 2012
Beiträge
3.259
Punkte für Reaktionen
600
Punkte
174
Hi dil88,

nun habe ich auch diese Variante probiert mit Angabe des Pfades für user http. Leider auch ohne Erfolg.
Dennoch vielen Dank für dein Antrieb es doch nicht unversucht zu lassen :)

Nochmals kurz zusammengefasst, weder a.) b.) noch c.) haben funktioniert:

Rich (BBCode):
a.) */5     *       *       *       *       http    /usr/bin/php -f /volume1/web/owncloud/cron.php
b.) */5     *       *       *       *       root    /usr/bin/php -f /volume1/web/owncloud/cron.php
c.) */5     *       *       *       *       root    /bin/su -c "/usr/bin/php -f /volume1/web/owncloud/cron.php" http

Gruß
luddi
 

Benares

Benutzer
Sehr erfahren
Mitglied seit
27. Sep 2008
Beiträge
13.659
Punkte für Reaktionen
3.673
Punkte
468
mmh, probiers mal bei c.) mit
Code:
*/5     *       *       *       *       root    /bin/su -s /bin/sh -c "/usr/bin/php -f /volume1/web/owncloud/cron.php" http
http hat /bin/false als Shell (s. /etc/passwd). Deshalb wird wohl auch a.) nicht gehen.
 

Frogman

Benutzer
Mitglied seit
01. Sep 2012
Beiträge
17.485
Punkte für Reaktionen
8
Punkte
414
Ich hatte bisher für diesen Zweck den Check auf den ausführenden User 'http' in der cron.php auskommentiert - aber Deine Lösung ist natürlich erheblich eleganter und auch ansonsten flexibel einsetzbar, Benares :) - vielen Dank, funktioniert tadellos unter ownCloud 8.0.4.
 
Zuletzt bearbeitet:

luddi

Benutzer
Sehr erfahren
Mitglied seit
05. Sep 2012
Beiträge
3.259
Punkte für Reaktionen
600
Punkte
174
http hat /bin/false als Shell (s. /etc/passwd). Deshalb wird wohl auch a.) nicht gehen.
Ok, das leuchtet mir natürlich ein und habe selbst schon daran gedacht es zu ändern sodaß http auch Zugriff auf die Konsole bekommt.

Nun habe ich zuerst dein Vorschlag probiert und exakt so in meine /etc/crontab mit dem vi Editor eingetragen...

Rich (BBCode):
*/5     *       *       *       *       root    /bin/su -s /bin/sh -c "/usr/bin/php -f /volume1/web/owncloud/cron.php" http
Aber selbst nach einem Neustart des crond mit
Rich (BBCode):
/usr/syno/sbin/synoservicectl --restart crond
bzw. ein Neustart des kompletten Systems brachte nichts. Es heißt in der Owncloud Admin Einstellung weiterhin dass der letzte cron update im April stattgefunden hat.

Was mache ich nun falsch??? Warum sehe ich den Wald vor lauter Bäumen nicht mehr? :confused:
Jedenfalls sehr seltsam das ganze.

Gruß
luddi
 

Benares

Benutzer
Sehr erfahren
Mitglied seit
27. Sep 2008
Beiträge
13.659
Punkte für Reaktionen
3.673
Punkte
468
Funktioniert es, wenn du
Code:
/bin/su -s /bin/sh -c "/usr/bin/php -f /volume1/web/owncloud/cron.php" http
als root in der Konsole aufrufst?

Das sollte natürlich zuerst mal funktionieren, bevor man versucht etwas per crond zu schedulen.
 

luddi

Benutzer
Sehr erfahren
Mitglied seit
05. Sep 2012
Beiträge
3.259
Punkte für Reaktionen
600
Punkte
174
Das habe ich bereits als aller erstes versucht bevor ich es im crontab eingebaut hatte. Die Konsole meldet folgendes:
Rich (BBCode):
Another instance of cron.php is still running!

Aber suche ich unter den laufenden Prozessen, dann finde ich keinen unter dem Namen cron.php

Gruß
luddi
 

Frogman

Benutzer
Mitglied seit
01. Sep 2012
Beiträge
17.485
Punkte für Reaktionen
8
Punkte
414
Hast Du open_basedir-Fehler im ownCloud-Log?
 

luddi

Benutzer
Sehr erfahren
Mitglied seit
05. Sep 2012
Beiträge
3.259
Punkte für Reaktionen
600
Punkte
174
@Frogman:

wenn du z.B. solch einen Fehler meinst dann JA...

Rich (BBCode):
Error	PHP	file_exists(): open_basedir restriction in effect. File(/img/picture.png) is not within the allowed path(s):
(/etc.defaults:/etc:/usr/syno/synoman:/tmp:/var/services/tmp:/var/services/web:/var/services/homes:/volume1/owncloud) at
/volume1/web/owncloud/lib/private/urlgenerator.php#119

Gruß
luddi
 

Benares

Benutzer
Sehr erfahren
Mitglied seit
27. Sep 2008
Beiträge
13.659
Punkte für Reaktionen
3.673
Punkte
468
Dann wird es deinem per crond ausgeführten Job ebenso gehen. Was listet "ps | grep php"?
 

Frogman

Benutzer
Mitglied seit
01. Sep 2012
Beiträge
17.485
Punkte für Reaktionen
8
Punkte
414
Dann ändere testweise einmal in der /etc/php/conf.d/user-settings.ini die Festlegungen für die Pfade auf (die Standardzeile dafür auskommentieren)
Code:
;open_basedir = /etc.defaults:/etc:/usr/syno/synoman:...
open_basedir = Null
...
und schaue, ob dann der Cron nach einen Neustart aktualisiert.
 

luddi

Benutzer
Sehr erfahren
Mitglied seit
05. Sep 2012
Beiträge
3.259
Punkte für Reaktionen
600
Punkte
174
Folgendes:

Rich (BBCode):
~ # ps | grep [p]hp
18495 root      191m S    php-fpm: master process (/etc/php/php-fpm.conf)
18496 http      192m S    php-fpm: pool www
18497 http      192m S    php-fpm: pool www
18506 http      193m S    php-fpm: pool www
 
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