Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> ssh2_exec - wyświetlenie pliku
lanceq
post 3.07.2012, 17:25:51
Post #1





Grupa: Zarejestrowani
Postów: 36
Pomógł: 0
Dołączył: 3.07.2012

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


  1. <?php
  2. $sciezka = "tutaj sciezka jest";
  3. $polaczenie = ssh2_connect("localhost", 22);
  4. ssh2_auth_password($polaczenie, "tutaj nazwa", "tutaj haselko");
  5. $polecenie = "tail -n 15 output.log";
  6. $stream = ssh2_exec($polaczenie, $polecenie);
  7. if($stream) {echo "<pre>$polecenie</pre>";}
  8.  
  9. ?>


Witam serdecznie, przypadkowo natknąłem się na to forum i wydaje się być tu całkiem fajnie, chyba tu zostanę na dłużej, ale do rzeczy, chcę za pomocą ssh2_exec outputnąć pewien plik tekstowy lecz niestety zamiast outputnąć zawartość polecenia wyświetlania "tail -n 15 output.log" a powinno wyświetlać ostatnich 15 linijek pliku output.log

Czemu to nie trybi ?
Pozdrawiam
Go to the top of the page
+Quote Post
Tajgeer
post 3.07.2012, 17:49:08
Post #2





Grupa: Zarejestrowani
Postów: 290
Pomógł: 48
Dołączył: 11.05.2008
Skąd: Kielce

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


Dziwisz się, że wyświetla Ci polecenie zamiast wyniku ssh2_exec? Sprawdź, czy użyłeś dobrej zmiennej ]:->
Go to the top of the page
+Quote Post
lanceq
post 3.07.2012, 17:54:08
Post #3





Grupa: Zarejestrowani
Postów: 36
Pomógł: 0
Dołączył: 3.07.2012

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


No jakbym się nie dziwił to bym chyba tutaj tematu nie zakładał, nieprawdaż smile.gif ?

Co do zmiennej to próbowałem wyświetlać też $stream, ale pojawia się wtedy "Resource id #3".
Go to the top of the page
+Quote Post
Tajgeer
post 3.07.2012, 17:55:27
Post #4





Grupa: Zarejestrowani
Postów: 290
Pomógł: 48
Dołączył: 11.05.2008
Skąd: Kielce

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


stream_get_contents
Go to the top of the page
+Quote Post
lanceq
post 3.07.2012, 18:02:42
Post #5





Grupa: Zarejestrowani
Postów: 36
Pomógł: 0
Dołączył: 3.07.2012

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


  1.  
  2. <?php
  3. $sciezka = "";
  4. $polaczenie = ssh2_connect("localhost", 22);
  5. ssh2_auth_password($polaczenie, "", "");
  6. $polecenie = "tail -n 15 output.log";
  7. $stream = ssh2_exec($polaczenie, $polecenie);
  8. if($stream) {echo stream_get_contents($stream);
  9. fclose($stream);
  10. }
  11. ?>


Nie wyświetla nic, gdzie popełniłem błąd?

Ten post edytował lanceq 3.07.2012, 18:05:37
Go to the top of the page
+Quote Post
Tajgeer
post 3.07.2012, 18:06:53
Post #6





Grupa: Zarejestrowani
Postów: 290
Pomógł: 48
Dołączył: 11.05.2008
Skąd: Kielce

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


Zauważ, że ssh2_exec, w przypadku powodzenia nie zwraca true, lecz strumień.
Cytat("http://php.net/manual/en/function.ssh2-exec.php")
Returns a stream on success or FALSE on failure.

Twój warunek powinien wyglądać, np:
  1. if ($stream !== false)
  2. {
  3. // powodzenie
  4. }


Ten post edytował Tajgeer 3.07.2012, 18:23:26
Go to the top of the page
+Quote Post
lanceq
post 3.07.2012, 18:15:40
Post #7





Grupa: Zarejestrowani
Postów: 36
Pomógł: 0
Dołączył: 3.07.2012

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


Wygląda to tak:

  1. $sciezka = "";
  2. $polaczenie = ssh2_connect("localhost", 22);
  3. ssh2_auth_password($polaczenie, "", "");
  4. $polecenie = "tail -n 15 output.log";
  5. $stream = ssh2_exec($polaczenie, $polecenie);
  6. if ($stream !== false) {echo stream_get_contents($stream);}


Zrobiłem wg. tego co napisałeś lecz dalej nic nie pokazuje.

Ten post edytował lanceq 3.07.2012, 18:20:38
Go to the top of the page
+Quote Post
Tajgeer
post 3.07.2012, 18:17:58
Post #8





Grupa: Zarejestrowani
Postów: 290
Pomógł: 48
Dołączył: 11.05.2008
Skąd: Kielce

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


Raportowanie błędów włączone?

  1. ini_set('display_errors', 1);


Jeśli nie wyświetli nic, sprawdz error.log.
Go to the top of the page
+Quote Post
lanceq
post 3.07.2012, 18:19:30
Post #9





Grupa: Zarejestrowani
Postów: 36
Pomógł: 0
Dołączył: 3.07.2012

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


W error.log nic co by dotyczyło tego błędu, tak samo gdy włącze reportowanie błędów.
Go to the top of the page
+Quote Post
Tajgeer
post 3.07.2012, 18:22:43
Post #10





Grupa: Zarejestrowani
Postów: 290
Pomógł: 48
Dołączył: 11.05.2008
Skąd: Kielce

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


http://php.net/manual/en/function.ssh2-exec.php#usernotes

Ten post edytował Tajgeer 3.07.2012, 18:23:18
Go to the top of the page
+Quote Post
lanceq
post 3.07.2012, 18:24:26
Post #11





Grupa: Zarejestrowani
Postów: 36
Pomógł: 0
Dołączył: 3.07.2012

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


Wygląda to tak:
  1. if ($stream !== false) {echo stream_set_blocking($stream, true); stream_get_contents($stream);}
I wyświetla się 1.

Ten post edytował lanceq 3.07.2012, 18:24:41
Go to the top of the page
+Quote Post
Tajgeer
post 3.07.2012, 18:25:50
Post #12





Grupa: Zarejestrowani
Postów: 290
Pomógł: 48
Dołączył: 11.05.2008
Skąd: Kielce

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


  1. echo stream_set_blocking($stream, true);

Że co? tongue.gif

  1. if ($stream !== false)
  2. {
  3. stream_set_blocking($stream, true);
  4. echo stream_get_contents($stream);
  5. }

Jeśli nie wyświetla, tzn. że ssh2_exec zwraca false.
Zastosuj się do drugiej notatki z http://php.net/manual/en/function.ssh2-exec.php#usernotes i odczytaj błąd.
Podejrzewam, że problem leży w tym, że nie podałeś bezwzględnej ścieżki do output.log, zwraca błąd (plik nie istnieje), przez co ssh2_exec zwraca false.

Ten post edytował Tajgeer 3.07.2012, 18:31:27
Go to the top of the page
+Quote Post
lanceq
post 3.07.2012, 18:27:27
Post #13





Grupa: Zarejestrowani
Postów: 36
Pomógł: 0
Dołączył: 3.07.2012

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


No pisałeś przed chwilą żeby dodać {echo stream_set_blocking($stream, true); przed stream_get_contents
Więc tak tez uczyniłem, co mam robić bo wyświetla 1 tongue.gif

@EDIT

  1. $sciezka = "";
  2. $polaczenie = ssh2_connect("localhost", 22);
  3. ssh2_auth_password($polaczenie, "", "");
  4. $polecenie = "tail -n 15 output.log";
  5. $stream = ssh2_exec($polaczenie, $polecenie);
  6. if ($stream !== false)
  7. {
  8. stream_set_blocking($stream, true);
  9. echo stream_get_contents($stream);
  10. }


Dalej nic nie wyświetla

Ten post edytował lanceq 3.07.2012, 18:28:43
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: 19.07.2025 - 22:45