Warning: ssh2_exec()

Potrzebujesz pomocy z C, C++, perl, python, itp.
Hadouken
Posty: 86
Rejestracja: 22 czerwca 2009, 13:49

Warning: ssh2_exec()

Post autor: Hadouken »

Witam mam taki problem, chcę używać takiego skryptu

Kod: Zaznacz cały

 <?php
$polaczenie = ssh2_connect("188.116.33.41", "22");
ssh2_auth_password($polaczenie, "marta", "123abc");
if ($polaczenie)
{
ssh2_exec("cd ~/1");
ssh2_exec("killall hlds_run");
ssh2_exec("screen -A -m -d ./hlds_run -game cstrike +port 27010 +maxplayers 16 +map de_dust +exec server.cfg");
ssh2_exec("logout");
echo("<font color='green'>Zresetowano</font>");
}
else
{
echo("<font color='red'>Nie połączono</font>");
}
print_r($polaczenie);
var_dump($polaczenie);
?>
<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=iso-8859-2">
Używam Debiana 5.0
Mam zainstalowane apache 2 php5 i bibliotekę

Kod: Zaznacz cały

root@vz2010:~# apt-cache search libssh2
libssh2-1 - SSH2 client-side library
libssh2-1-dbg - SSH2 client-side library (debug package)
libssh2-1-dev - SSH2 client-side library (development headers)
Ale wpisuje w przeglądarce ip_serwera/plik_z_tym_skryptem.php i na stronie mam taki komunikat

Kod: Zaznacz cały

Warning: ssh2_exec() expects at least 2 parameters, 1 given in /var/www/reset.php on line 6

Warning: ssh2_exec() expects at least 2 parameters, 1 given in /var/www/reset.php on line 7

Warning: ssh2_exec() expects at least 2 parameters, 1 given in /var/www/reset.php on line 8

Warning: ssh2_exec() expects at least 2 parameters, 1 given in /var/www/reset.php on line 9
ZresetowanoResource id #2resource(2) of type (SSH2 Session) 

I nie mam pojęcia co mam robić
Awatar użytkownika
lessmian2
Member
Posty: 1088
Rejestracja: 30 kwietnia 2008, 19:38
Lokalizacja: Kraków

Post autor: lessmian2 »

A czy zadałeś sobie choć trochę trudu, i przeczytałeś ze zrozumieniem komunikat błędu, a potem manual do tej funkcji? Przecież jest napisane jasno i wyraźnie:
ssh2_exec() expects at least 2 parameters, 1 given
W manualu jest napisane, że funkcja wymaga podania przynajmniej ,,handlera'' połączenia utworzonego za pomocą ssh2_connect(), oraz polecenia do wykonania.
Hadouken
Posty: 86
Rejestracja: 22 czerwca 2009, 13:49

Post autor: Hadouken »

Raczej początakujący jestem i nawet nie bardzo wiem co mi napisałeś.
Może mi to jakoś prosto wytłumaczyć na przykładzie albo poprawić ten wklejony skrypt?
Awatar użytkownika
lessmian2
Member
Posty: 1088
Rejestracja: 30 kwietnia 2008, 19:38
Lokalizacja: Kraków

Post autor: lessmian2 »

Ehh. Tu nawet nie chodzi o to czy jesteś początkujący, tylko czy chcesz zrozumieć to co robisz. Jeśli nie wiesz co oznacza komunikat błędu, użyj jakiegoś słownika. Pomocne też jest przeczytanie dokumentacji danej funkcji.

Jako pierwszy parametr funkcji ssh2_exec() podajesz handler połączenia, utworzony za pomocą ssh2_connect(). W Twoim przypadku jest to $polaczenie. Zmodyfikuj wszystkie linie z ssh2_exec() według poniższego przykładu:

Kod: Zaznacz cały

ssh2_exec($polaczenie, "cd ~/1");
Hadouken
Posty: 86
Rejestracja: 22 czerwca 2009, 13:49

Post autor: Hadouken »

Skrypt wygląda teraz tak

Kod: Zaznacz cały

<?php
$polaczenie = ssh2_connect("188.116.33.41", "22");
ssh2_auth_password($polaczenie, "marta", "123abc");
if ($polaczenie)
{
ssh2_exec("$polaczenie, cd ~/1");
ssh2_exec("$polaczenie, killall hlds_run");
ssh2_exec("$polaczenie, screen -A -m -d ./hlds_run -game cstrike +port 27010 +maxplayers 16 +map de_dust +exec server.cfg");
ssh2_exec("$polaczenie, logout");
echo("<font color='green'>Zresetowano</font>");
}
else
{
echo("<font color='red'>Nie połączono</font>");
}
print_r($polaczenie);
var_dump($polaczenie);
?>
<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=iso-8859-2">
a błąd tak

Kod: Zaznacz cały

Warning: ssh2_exec() expects at least 2 parameters, 1 given in /var/www/reset.php on line 6

Warning: ssh2_exec() expects at least 2 parameters, 1 given in /var/www/reset.php on line 7

Warning: ssh2_exec() expects at least 2 parameters, 1 given in /var/www/reset.php on line 8

Warning: ssh2_exec() expects at least 2 parameters, 1 given in /var/www/reset.php on line 9
ZresetowanoResource id #2resource(2) of type (SSH2 Session) 
Awatar użytkownika
lessmian2
Member
Posty: 1088
Rejestracja: 30 kwietnia 2008, 19:38
Lokalizacja: Kraków

Post autor: lessmian2 »

To teraz spójrz na mój przykład i na to co Ty napisałeś, i znajdź różnice :->
Hadouken
Posty: 86
Rejestracja: 22 czerwca 2009, 13:49

Post autor: Hadouken »

Jaki błąd :->
Teraz jest kolejny problem, bo serwer się zatrzymał ale nie może wystartować.
Rozbiłem 1 polecenie na dwa ale to nic nie dało.

Kod: Zaznacz cały

ssh2_exec($polaczenie, "cd ~");
ssh2_exec($polaczenie, "cd 1");
Awatar użytkownika
lessmian2
Member
Posty: 1088
Rejestracja: 30 kwietnia 2008, 19:38
Lokalizacja: Kraków

Post autor: lessmian2 »

Sprawdź co Ci zwraca ssh2_exec.
Hadouken
Posty: 86
Rejestracja: 22 czerwca 2009, 13:49

Post autor: Hadouken »

Według mnie to jest dobrze. Serwer uruchomiłem takim poleceniem:

Kod: Zaznacz cały

screen -A -m -d ./hlds_run -game cstrike +port 27010 +maxplayers 16 +map de_dust +exec server.cfg
I takie jest w skrypcie. A skrypt niby działa bo serwer się zatrzymuje. Wiesz może jak to zrobić?
Awatar użytkownika
lessmian2
Member
Posty: 1088
Rejestracja: 30 kwietnia 2008, 19:38
Lokalizacja: Kraków

Post autor: lessmian2 »

Hadouken pisze:No według mnie to jest dobrze
Hmm, wiesz, takie zapewnienia nie są wystarczającym dowodem. Sprawdź jednak co zwraca funkcja ssh2_exec().
ODPOWIEDZ