Cronjob Ausführung über bin/console

Hallo, wir betreiben einen Shopware CE Shop (5.2.26) und haben die E-Mailbenachrichtigungen aktiviert. Die Seite liegt aktuell bei Hetzner. Dort ist der Shop in einem Ordner in /public_html/Ordner/shop/ installiert. Dort ist der Cronjob wie folgt eingerichtet:

cd /usr/home//public_html/Ordner/shop/ && /usr/bin/php bin/console sw:cron:run

Obwohl es so aussieht als würde der Cronjob ausgeführt, weil keine Fehlermeldung kommt, wird mir die Ausführungszeit im Backend unter Grundeinstellungen->System->Cronjobs nicht aktualisiert. Wenn ich den Cronjob jedoch per Browser ausführe (http://domain/backend/cron) wird diese Angabe auf den Zeitpunkt der Ausführung eingestellt. Ist das normal so, oder habe ich irgendwo einen Fehler im Aufruf?

Wenn ich den Aufruf direkt über die Shell starte, also direkt in den Ordner …/shop/ wechsel und den Cronjob per /usr/bin/php bin/console sw:cron:run ausführe, bekomme ich auch keine Fehlermeldung, aber trotz Cach löschen usw. wird die Zeit nicht aktualisiert. Der Support bei Hetzner sagt, wenn ich per Shell ausführe und keine Fehlermeldung kommt, sollte alles richtig sein.

Wäre super wenn mir jemand hier eine Info geben könnte.

Danke

Du bekommst keine Fehlermeldung? Sondern was?

Ich bekomme gar nichts. Wenn ich auf der Shellebene bin schreibe ich den Befehl und drücke enter. Dann bin ich wieder an der Eingabeaufforderung. Wenn ich im Browser backend/cron/ ausführe, bekomme ich zumindest eine Ausgabe das das processing durchgeführt wird.

Ich habe eine weiteren Cronjob dort eingerichtet für Newsletter, der aber noch per CLI aufgerufen wird. Hier bekomme ich immer nur die Meldung:

 WARNING: Executing shopware.php via CLI is deprecated. Please use the command line tool in bin/console instead.

Es ist allerdings auch zur Zeit keine Benachrichtigung zu versenden, aber die Bonuspunkte werden auch immer geprüft.

Als ich den standard Cronjob auch noch CLI eingebunden hatte bekam ich hier die gleiche Warning, deshalb habe ich umgestellt.

ok, wenn es Jobs zu erledigen gibt, kannst ja mal zu Testen die den Zeitpunkt ändern, solle eine Ausgabe kommen: der Jobname.

Ok, nun gab es Jobs zu erledigen, aber es ist wieder nichts ausgeführt worden. Keine E-Mailbenachrichtigung ist rausgegangen.

Ich versuche das jetzt nochmal mit der CLI Einstellung, aber dann bin ich mit meinem Latein am Ende.

So und nun habe ich auch die Lösung meines Problems gefunden.
Problem war dass ich mit “which php5” auf der Shell versucht habe den Interpreter herauszufinden, der eingesetzt wird. Dadurch habe ich in meinem Aufruf auch
“cd /usr/home/public_html/Ordner/shop/ && /usr/bin /php bin/console sw:cron:run”
stehen.

Für den Account/Shop ist aber aktuell als PHP Version noch 5.6.31 eingestellt. Und hier liegt der Fehler da der Aufruf über die Shell nun geringfügig anders lauten muss:

cd /usr/home/public_html/Ordner/shop/ && /usr/bin/ php56 bin/console sw:cron:run

Jetzt laufen die Crons auch.