ssh2_exec output erst wenn befehl ausgeführt

Einklappen
X
 
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • ssh2_exec output erst wenn befehl ausgeführt

    Hallo leute,

    ich arbeite immoment mit ssh_exec() um ein script auf einem anderen Rootserver auszuführen.

    Ansich ja kein problem, Verbindung aufgebaut, befehl ausgeführt, output wird per if vergleich und dann der status ausgegeben ...

    funktioniert auch ... doch jetzt tritt ein Problem auf:
    ab und zu sowie wenn man zu schnell aktualisiert, scheint die Ausgabe zu spinnen.

    Das script (welches per ssh_exec gestartet wird) gibt nach erfolgreicher ausführung per echo
    Code:
    online
    aus welches dann in die Variable
    Code:
    $output_script
    geladen wird.
    Die Variable
    Code:
    $status = "online"
    Die if funktion sieht wie folgt aus:
    PHP-Code:
    if(strcmp ($output_script$status) > 0){
    echo 
    "online";
    } else {
    echo 
    "offline";

    Normalerweise funktioniert der Output richtig ung online wird angezeigt.
    Aber wenn halt wie oben beschrieben zu schnell oder einfach per zufall aktualisiert wird, kann es vorkommen, das er trotzdem offline anzeigt.

    Nun habe ich gelesen, das es die Möglichkeit gibt den output so zu steuern, das dieser erst nach erfolgreicher Ausführung des comands kommt.

    Diese Funktion nutze ich zum ausführen des scripts
    PHP-Code:
    function exec_over_ssh($hostip,$hostport,$hostuser,$hostsave,$hostcommand){
    $connection ssh2_connect($hostip,$hostport)
    ssh2_auth_password($connection,$hostuser,$hostsave)
    $stream ssh2_exec($connection,$hostcommand,FALSE)
    stream_set_blocking($streamtrue);
    $data "";
    while(
    $buffer fread($stream,4096)) {
          
    $data .= $buffer;
          return 
    $data;
    }
    fclose($stream);

    Oder kann es sein, das die if-abfrage das Problem ist?

    Ich danke euch jetzt schonmal für die Antworten

    mfg

  • #2
    fclose nach return?

    Kommentar


    • #3
      ... ok ... hat sich somit erledigt

      Kommentar

      Lädt...
      X