Anzeige:
Ergebnis 1 bis 6 von 6

Thema: SSH und PHP...

  1. #1
    Registrierter Benutzer
    Registriert seit
    02.02.2004
    Beiträge
    60

    SSH und PHP...

    Servus,

    ich rufe auf einer PHP-Seite über SSH ein shell-skript auf einem entfernten Server auf. Das Skript selber hat eine Ausgabe auf stdout.
    Ich will nun den STDOUT auf meine PHP-Seite integrieren....klappt auch. Das Problem ist aber, dass das Skript locker 30 Minuten laufen kann (und auch ständig neues stdout produziert). Meine PHP-Seite wartet nun die 30min ab und präsentiert mir dann das Ergebnis.

    Gibt es ne Möglichkeit, dass ich nicht die 30min abwarten muss, sondern in dieser Zeit eine Seite "Bitte warten..." oder die Ausgabe, die man ind er Shell sieht angezeigt bekomme, also den Fortschritt? Am besten wäre natürlich, dass ich die gesamte Ausgabe in Echtzeit in PHP darstellen kann...was soweit ich weiß nicht möglich ist.

    clumsy
    Geändert von clumsy (07-08-2006 um 14:15 Uhr)

  2. #2
    Registrierter Benutzer Avatar von undefined
    Registriert seit
    01.03.2004
    Beiträge
    1.255
    mfg undefined
    --
    Undefined Behavior (undefiniertes Verhalten) bedeutet meistens etwas ungültiges.
    xhtml Debugger

  3. #3
    Registrierter Benutzer Avatar von Romanday
    Registriert seit
    03.02.2004
    Beiträge
    829
    Zitat Zitat von clumsy
    Am besten wäre natürlich, dass ich die gesamte Ausgabe in Echtzeit in PHP darstellen kann...was soweit ich weiß nicht möglich ist.

    clumsy
    Echtzeit geht z. T. auch, würde ich aber nicht empfehlen, da Du sonst
    die php.ini zu extrem ändern mußt.

    Schreib die Ausgabe von deinem Shellscript in eine Datei, und lese
    die mit php ein. Das ist doch der einfachste Weg.
    Abriss, bzw. die Sprengung des World Trade Centers
    WDR Dokumentation
    Doku + DT Untertitel
    Weitere Infos - Terrorstorm

  4. #4
    Registrierter Benutzer
    Registriert seit
    02.02.2004
    Beiträge
    60
    Zitat Zitat von Romanday
    Echtzeit geht z. T. auch, würde ich aber nicht empfehlen, da Du sonst
    die php.ini zu extrem ändern mußt.

    Schreib die Ausgabe von deinem Shellscript in eine Datei, und lese
    die mit php ein. Das ist doch der einfachste Weg.

    genau so hab ich´s gemacht. hab ein wrapper-shellskript geschrieben (rufe ich aus PHP auf), das mit einem Aufruf wie 'nohup hauptskript.sh &' das Haupt-Skript startet. Das Hauptskript schreibt die Ausgabe in eine Datei, die ich in PHP einlese. Allerdings wartet PHP immernoch auf das Ende des Hauptprogramms, was wie gesagt lange dauern kann....also keine Lösung.

    php.ini kann ich nicht ändern. das ist ein Firmenserver auf dem mir die Rechte fehlen.

  5. #5
    Registrierter Benutzer
    Registriert seit
    18.06.2002
    Beiträge
    20
    Hallo,

    bin in der Sache nicht so der Held, da ich selten Scripte auf nem Server über PHP ausführe. Aber evtl. hilft Dir ja flush(); weiter.

    Ich würde sowas in die richtung:

    while(shellscript)
    {
    flush();
    }

    probieren.

    Gruß
    Alexander

  6. #6
    Registrierter Benutzer Avatar von Romanday
    Registriert seit
    03.02.2004
    Beiträge
    829
    Zitat Zitat von clumsy
    genau so hab ich´s gemacht. hab ein wrapper-shellskript geschrieben (rufe ich aus PHP auf), das mit einem Aufruf wie 'nohup hauptskript.sh &' das Haupt-Skript startet. Das Hauptskript schreibt die Ausgabe in eine Datei, die ich in PHP einlese. Allerdings wartet PHP immernoch auf das Ende des Hauptprogramms, was wie gesagt lange dauern kann....also keine Lösung.
    Okay, zweite Runde...
    Dann speichere die Ausgabe in einer DB und frage immer die letzten
    Werte ab. Mußt natürlich das erst mal eine Weile laufen lassen, damit
    die DB gefüllt wird.
    Was macht den dein Script? 1/2 Stunde zur Ausführung ist a bissle
    lang, oder?

    Zitat Zitat von clumsy
    php.ini kann ich nicht ändern. das ist ein Firmenserver auf dem mir die Rechte fehlen.
    Ich hatte da so eine Ahnung.

    Zitat Zitat von BuCkA
    Hallo,

    bin in der Sache nicht so der Held, da ich selten Scripte auf nem Server über PHP ausführe. Aber evtl. hilft Dir ja flush(); weiter.
    Gruß
    Alexander
    Wenn er keinen Rückgabewert hat, bringt flush(); nichts.
    Abriss, bzw. die Sprengung des World Trade Centers
    WDR Dokumentation
    Doku + DT Untertitel
    Weitere Infos - Terrorstorm

Lesezeichen

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •