Autor Thema: Shopware Cronjob CLI Command mit Parameter - BashScript?  (Gelesen 2467 mal)

Offline netzchakra

  • Newbie
  • *
  • Beiträge: 1
    • Profil anzeigen
Hallo,

ich benötige bei einem Cronjob in Shopware, der auf einem Shopware-Shell Command mit Parameter zugreift.
Somit fällt ein einfaches https://www.domain.tld/backend/cron leider aus.

Da ich hierzu fast gar keine Infos bzgl. der Shopware CLI und Cronjobs gefunden habe, möchte ich die Frage hier stellen, dass von möglichen Antworten jeder Suchende etwas hat! :P
Lediglich dieses Tutorial habe ich gefunden, das mir schon sehr weitergeholfen hat: https://www.profihost.com/forum/shopware/(ssh-tutorial)-shopware-5-cli-konsole/

Ich habe mir mit Hilfe eines Forenbeitrages ein Script gebastelt, das nach anfänglichen Schwierigkeiten auch gefunden wird. (https://www.domain.tld/cronscript.sh hat hier funktioniert)

Jedoch sendet mein 5-min-Test-Cronjob eine Mail, die das bash-Script zum Inhalt hat. Ein Verhalten, dass mich jetzt nicht stört - vielmehr jedoch die Tatsache, dass das Script scheinbar nicht ausgeführt wird.

Auch ein mit
chmod +x cronscript.sh
ausführbar machen hilft leider nicht. Die Rechte des Scripts: 755

Hier mein Script mit einem Shopware Import/Export Command als Beispiel:
#!/bin/bash

/usr/local/php5.6/bin/php -z /usr/local/php_extensions/php5.6/ioncube.so ~/pfad/zu/shopware/bin/console sw:importexport:export -p "Profil" -o 1000 ziel.csv

Egal ob mit oder ohne Pfad zu Ioncube - das Ergebnis ist dasselbe. Das Plugin, dass den Command in meinem Falle zur Verfügung stellt, ist verschlüsselt. Daher vermute ich, dass der Ioncube-Pfad zwingend benötigt wird.
Ist evtl. der/die/das Shebang falsch?

Die Frage ist nun, wie muss ein korrektes Script lauten, dass man Shopware CLI-Commands mit Parameter per Profihost-Cronjob nutzen kann?
Oder funktioniert dies ganz anders?

Eine kleine Anregung @Profihost:
Bei anderen Hostern habe ich gesehen, dass man zB als Skriptpfad "/shopware_root/bin/console" angeben kann und zusätzlich gibt es ein Input-Feld für Argumente, wo man dann direkt einen Command wie "sw:warm:http:cache" eintragen kann. Das würde den *.sh Weg ersparen!

Vielen Dank für die Hilfe!

Liebe Grüße,
Sebastian
« Letzte Änderung: 04.07.2017 17:37 von netzchakra »

Offline B. Seiffert - Profihost

  • Global Moderator
  • Hero Member
  • *****
  • Beiträge: 501
    • Profil anzeigen
Re: Shopware Cronjob CLI Command mit Parameter - BashScript?
« Antwort #1 am: 07.07.2017 17:40 »
Hallo Sebastian,

vielen Dank für deine Anfrage und den netten Ansatz dies auch anderen Zugänglich zu machen.

Ich habe mir auf einem Testserver ein Skript angelegt um den Cache aufzuwärmen.

touch sw_cache_warm.sh && chmod 755 sw_cache_warm.sh
Hier ein Beispiel für das aufwärmen des Caches.
Als erstes definiere ich "bash" als Interpreter.
Mit dem Pfad zu der gewünschten php-Version und unter Angabe des Ortes der phpX.X.ini kann dann der Shopware spezifische Befehl ausgeführt werden.
Auch bei diesem gebe ich den Absoluten Pfad mit an.
Aussehen könnte das wie folgt:

#!/bin/bash

/usr/local/php5.6/bin/php -c /home/USER/ /home/USER/INSTALLDIR/bin/console sw:warm:http:cache

Voraussetzung ist, dass auch bin/console ausführbar ist.

Wenn es weiterhin noch konkrete Fragen hierzu gibt, würde ich mir das gern auf Ihrem Server einmal im Detail ansehen.
Sollte das Skript im falschen Datenformat vorliegen, könnte das schon dafür sorgen, dass es nicht richtig interpretiert wird und die Ausgabe 1 zu 1 per Mail zugeschickt wird.
Dazu können Sie gern einmal bei uns durchrufen oder ein Ticket erstellen.
Die Informationen, die daraus entstehen, pflege ich hier dann nach.

PS: Danke dir auch für deinen Verbesserungsvorschlag.
Ich werde mal mit unseren Entwicklern darüber sprechen, wie man häufig wiederkehrende Automatismen einfach konfigurieren kann.
« Letzte Änderung: 21.09.2017 13:04 von B. Seiffert - Profihost »