Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [PHP] SSH2 - wykonanie polecenia
Spooky2
post 27.06.2010, 16:49:17
Post #1





Grupa: Zarejestrowani
Postów: 79
Pomógł: 0
Dołączył: 26.06.2007

Ostrzeżenie: (0%)
-----


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..
Go to the top of the page
+Quote Post
yevaud
post 27.06.2010, 19:26:56
Post #2





Grupa: Zarejestrowani
Postów: 471
Pomógł: 89
Dołączył: 29.07.2008
Skąd: Warszawa

Ostrzeżenie: (0%)
-----


a nie powinienes wczesniej zamknac strumienia ktory dostales ?
Go to the top of the page
+Quote Post
Spooky2
post 27.06.2010, 20:51:31
Post #3





Grupa: Zarejestrowani
Postów: 79
Pomógł: 0
Dołączył: 26.06.2007

Ostrzeżenie: (0%)
-----


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

Ten post edytował Spooky2 27.06.2010, 20:52:22
Go to the top of the page
+Quote Post
yevaud
post 27.06.2010, 21:41:36
Post #4





Grupa: Zarejestrowani
Postów: 471
Pomógł: 89
Dołączył: 29.07.2008
Skąd: Warszawa

Ostrzeżenie: (0%)
-----


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);


Ten post edytował yevaud 27.06.2010, 21:50:11
Go to the top of the page
+Quote Post
Spooky2
post 28.06.2010, 16:45:55
Post #5





Grupa: Zarejestrowani
Postów: 79
Pomógł: 0
Dołączył: 26.06.2007

Ostrzeżenie: (0%)
-----


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
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
1 Użytkowników czyta ten temat (1 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Wersja Lo-Fi Aktualny czas: 13.06.2025 - 06:18