ssh2 tutorial

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

  • ssh2 tutorial

    moin zusammen,

    ich kauer immernoch über ssh2. aber tata... die verbindung geht nun.

    habe ssh2 installiert (Secure Shell2) und kriege mit ssh2_connect() auch die verbindung her. nur habe ich derzeit einen schleier vor augen, wie ich auf dem connectierten server ein cgi mit parameter aufrufe und den std-out auslese.

    kennt jemand tutorials oder kann mir hier den passenden denkanstoss geben, wie ich mein vorhaben realisiere??

    wenn ich ein ssh2_exec() mache ( bsp ls ) kommt ne resource id #3 raus. wie ich aber weitere infos bekomme... ein böhmisches dorf für mich

    wer weiß es wer weiß es
    **********
    arkos
    **********

  • #2
    Hi,

    ich kenn mich mit dem was du da machst überhaupt nicht aus,
    aber wenn du ne resource bekommst liegt es eigentlich nahe
    mal zu versuchen davon zu lesen oder ?

    greets
    (((call/cc call/cc) (lambda (x) x)) "Scheme just rocks! and Ruby is magic!")

    Kommentar


    • #3
      jau, ich weiß.
      die ressource sagt mir (denke ich mal) nur, dass mein exec() erfolgreich ausgeführt wird.

      ich fühle mich gerade so, als ob ich absolutes neuland betrete. ich finde !!!nirgends!!! etwas oder jemanden, der sowas schon mal gemacht hat.

      keinen menschen, keine seite, kein tutorial...

      leute, lasst mich nicht hängen

      lust, jemand mit mir dieses neuland zu sichern??

      edit: pfui, hab noch eins vergessen: danke! auch für den hinweis nach der res-id zu suchen...
      Zuletzt geändert von arkos; 03.11.2006, 17:15.
      **********
      arkos
      **********

      Kommentar


      • #4
        Nein ich meine, lies mal von der resource, sprich benutz es als
        handle für z.B. fread().

        Hast das schon mal probiert ?


        [NACHTRAG]
        Ok es ist nicht direkt fread... aber so ählich ssh2_fetch_stream.
        [Nachtrag2 ]

        Ich lese gerade ssh2_exec gibt ja schon einen stream zurück. In diesem
        fall wohl doch einfach mal probieren zu lesen.

        greets:
        Zuletzt geändert von closure; 03.11.2006, 17:18.
        (((call/cc call/cc) (lambda (x) x)) "Scheme just rocks! and Ruby is magic!")

        Kommentar


        • #5
          jau, habe ich auch schon probiert.

          PHP-Code:
          $stream ssh2_exec($connection'ls');
          echo 
          $stream// ausgabe: Resource id #3 
          while($out fgets($stream)) {
                         echo 
          $out."<br />";
                  } 
          leider nichts... gaaaaar nichts...
          **********
          arkos
          **********

          Kommentar


          • #6
            den fetch_tream hab ich mir auch angesehen. nur (bislang) noch keinen plan, wie ich den auf mein script / exec anwenden muss
            **********
            arkos
            **********

            Kommentar


            • #7
              na klasse
              die erweiterung des scriptes um:
              PHP-Code:
              $stderr_stream ssh2_fetch_stream($streamSSH2_STREAM_STDERR);

              echo 
              $stderr_stream;
              while(
              $out fgets($stderr_stream)) {
                             echo 
              $out."<br />";
                      } 
              bringt im ersten echo (echo $stderr_stream): Ressource id#4

              ich glaub ich geh einen trinken....
              **********
              arkos
              **********

              Kommentar


              • #8
                Hi,

                probier mal

                PHP-Code:
                if(FALSE !== ($stream ssh2_exec($connection,'ls -la'))){
                         
                stream_set_blocking($stream,true);
                         while(
                FALSE !== ($buffer fread($stream,1024))){
                                  echo 
                $buffer;
                         }


                [Edit]
                Warn typo, du musst ihn natürlich auf blocking io umstellen.

                greets
                (((call/cc call/cc) (lambda (x) x)) "Scheme just rocks! and Ruby is magic!")

                Kommentar


                • #9
                  hm, leider nur ein 504 gateway time-out.

                  was meinst du mit blocking io setzen??
                  **********
                  arkos
                  **********

                  Kommentar


                  • #10
                    Hi,

                    es scheint so zu sein, dass die streams die man zurück bekommt
                    non-blocking sind. Deswegen funktioniert auch ein fread nicht.
                    Wenn du jedoch blockierende streams benutzt sollte es gehen.

                    Deswegen stream_set_blocking($stream,1).

                    greets

                    [Nachtrag]
                    Nicht vergessen den stream wieder zu schliessen.
                    fclose()
                    (((call/cc call/cc) (lambda (x) x)) "Scheme just rocks! and Ruby is magic!")

                    Kommentar


                    • #11
                      allerdings schmeist mir folgendes was raus:
                      PHP-Code:
                      $stream ssh2_exec($connection,'ls -la');
                               
                      stream_set_blocking($stream,true);
                               while(
                      $buffer fread($stream,1024)){
                                        echo 
                      $buffer
                      (auch tatsächlich den output von ls -la)

                      damit arbeite ich erstmal.... dennoch bin ich über weitere hinweise, ratschläge und schnipsel dankbar...
                      **********
                      arkos
                      **********

                      Kommentar

                      Lädt...
                      X