Cronjobs Local laufen lassen

Dieses Thema im Forum "Allgemein" wurde erstellt von Deex, 4. Feb. 2014.

  1. Deex

    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.
     
  2. Till

    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.
     
  3. Deex

    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?
     
  4. Till

    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.
     
  5. Deex

    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: 8. Feb. 2014
  6. Till

    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
     
  7. Deex

    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?
     
  8. Till

    Till Administrator

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

    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.
     
  9. Deex

    Deex Member

    Vielen dank =) sieht gut aus funktioniert alles blendet.
     

Diese Seite empfehlen