Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP] SSH2 - wykonanie polecenia
Forum PHP.pl > Forum > Przedszkole
Spooky2
Mam takie pytanie - czy ktos probowal wykonac dwa polecenia, jedno po drugim wykonujac jedno polaczenie przy pomocy finkcji ssh2_connect?

Przyklad
$konsola = polaczenie($host, $uzytkownik, $haslo, $port);

$komenda_extra = "ls -lah";
$dane = komenda($konsola, $komenda_extra);
$komenda_extra2 = "cat plik.txt";
$dane2 = komenda($konsola, $komenda_extra2);


Probowalem jw, ale niestety nie dziala. Pierwsze polecenie wykonuje sie, przy drugim otrzymuje komunikat
Unable to request a channel from remote host
Chodzi mi wlasnie o to, aby nie nawiazywac kolejnego polaczenia do hosta celem wykonania drugiej komendy, tylko wykonac je w "obrebie" nawiazanego..
yevaud
a nie powinienes wczesniej zamknac strumienia ktory dostales ?
Spooky2
Probowalem, wlasciwie w standardzie (klasie, ktora mam) jest zamykany. Nic to jednak nie daje. Doszedlem do tego, ze to blad w bibliotece. Sciagnalem wiec nowe libssh2, skompilowalem. Komunikat sie zmienil, ale nadal nie dziala...
yevaud
zamiast ssh2_exec sproboj wrzucac polecenia ze pomoca ssh2_shell

  1. <?php
  2.  
  3. $con=ssh2_connect('192.168.0.1', 22);
  4. ssh2_auth_password($con, 'user', 'password');
  5. $shell=ssh2_shell($con, 'xterm');
  6. fwrite( $shell, 'cd /dir_one;'.PHP_EOL);
  7. fwrite( $shell, 'ls -la;'.PHP_EOL);
  8. fwrite( $shell, 'cd /dir_two;'.PHP_EOL);
  9. fwrite( $shell, 'ls -la;'.PHP_EOL);
  10.  
  11. ?>


sroboj dorzucic tez
  1. stream_set_blocking($stream, true);
Spooky2
Ok, dzieki za sugestie. shell_exec - nie za bardzo chce dzialac z danym urzadzeniem. W kazdym razie poradzilem sobie z ssh2_exec - rezygnujac z klasy. Pozdro
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.