Cronjobs Local laufen lassen

Deex

Member
Servus,- ich würde gerne PHP Cronjobs local laufen lassen anstatt mit W-Get
gibt es dafür mittlerweile eine möglichkeit in ISPconfig?

Mittlerweile wird soviel Traffic dadurch erzeugt das dieses nicht sehr sinnvoll und performant ist.
 

Till

Administrator
Das ging doch schon immer mit ispconfg, seit es cronjobs gibt. Alles was mit Linux cronjobs geht, geht auch mit den cronjobs in ispconfig.
 

Deex

Member
Also beim letzten mal funktioniert es nicht da es ja php dateien sind.

Wenn ich den Lokalen Ordner angebe führt er es nicht aus. Muss ich da ein SH Script für die PHP dateien erstellen oder gibt es da einen anderen weg?
 

Till

Administrator
Wahrscheinlich hast Du einen jailed cronjob genommen, aber kein php im jail installiert. Du musst entweder einen full cron verwenden, slo ohne jail, oder aber php in das jail der webseite installieren. Denn Man kann ja nur Programme in einem jail nutzen, die auch im jail installiert sind und wenn kein php im jail installiert wurde, kann man dort auch keine .php dateien ausführen.
 

Deex

Member
Ich habe das nun so gemacht

ist das so einigermaßen ok?

Code:
#!/bin/bash

PROCESS_NUM=$(ps -ef | egrep "gildenfeed_cron.php" | grep -v "grep" | wc -l)

if [ $PROCESS_NUM -gt 0 ]
then
    echo
    echo '#-----------------------------------------------#'
    echo '|  Starting background worker:                  |'
    echo '|                                               |'
    echo '|  >>>>>>>>>>>>>>>>>> FAILED <<<<<<<<<<<<<<<<<< |'
    echo '|          Process is already running!          |'
    echo '#-----------------------------------------------#'
    echo
else
    echo
    echo '#-----------------------------------------------#'
    echo '|  Starting background worker:                  |'
    echo '|                                               |'
    echo '|  > Output log: logs/                          |'
    echo '|  >  Error log: logs/                          |'
    echo '#-----------------------------------------------#'
    echo

    nohup php gildenfeed_cron.php 2> ./logs/guildfeed_de_error.log > ./logs/guildfeed_de.log &
fi
Jetzt ist da ein kleines Problem,- der Cron funktionierte nicht. Ich schaute also nach wieso nicht und las als Ausführendes Verzeichnis

/web/api/gildenfeed.sh

Das ist aber inkorrekt da fehlt das ganze vorherige.

Egal wie ich es mache es haut nicht hin,- nur wenn ich den cron von hand ausführe.
 
Zuletzt bearbeitet:

Till

Administrator
Wenn DU einen cronjob ohne jail hast, dann mus alles, wirklich alles, mit vollständiem pfad angegeben werden.

also in Deinem Fall z.B. /usr/bin/php statt php, denn ein cronjob unter Linux hat neimals die PATH Variable gesetzt.

Das einfachste ist wie folgt:

1) Du setzt den Kunden auf full cron. dann erstellst Du einen neuen crinob als full cron, also nicht jailed, bei command gibst Du ein:

/usr/bin/php -q /var/www/deineseite.tld/web/api/gildenfeed.sh
 

Deex

Member
Danke Till,

okay also ich habe schon festgestellt das auch mit den Rechten usw. das alles ein problem ist.

Ich habe nun dem Kunden den Full Cron gegeben für alle Seiten die er hat scheinbar.

Jetzt ist die Frage,- muss die Pfadangabe nun immer trotz der Methode komplett sein?

Also Benutzer lade ich die Crons per FTP Rauf und gebe ihnen 777, dass müsste doch eigentlich genügen um Rechte Probleme auszuhebeln?

Der Befehl /usr/bin/php -q /var/www/deineseite.tld/web/api/gildenfeed.sh

der enthält ja noch php,- kollidiert das nun mit meinem kleinen sh script?
 

Till

Administrator
Jetzt ist die Frage,- muss die Pfadangabe nun immer trotz der Methode komplett sein?

Sie muss nicht trotz sondern gerade wegen der methode komplett sein.

Der Befehl /usr/bin/php -q /var/www/deineseite.tld/web/api/gildenfeed.sh

der enthält ja noch php,- kollidiert das nun mit meinem kleinen sh script?

ER ersetzt dein shellscript. Du kannst Drin shellscript natürlich auch umprogrammieren, so dass es für alles vollständige Pfade enthält.

Rechteprobleme kann es grundsätzlich nicht geben, da der cronjob unter dem web user läuft, ein chmod 777 macht also nur dein script unsicher und ist unnötig.
 

Werbung

Top