Strona 1 z 2

Warning: ssh2_exec()

: 09 stycznia 2010, 18:07
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ć

: 09 stycznia 2010, 19:42
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.

: 09 stycznia 2010, 20:12
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?

: 09 stycznia 2010, 20:25
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");

: 09 stycznia 2010, 22:31
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) 

: 10 stycznia 2010, 10:52
autor: lessmian2
To teraz spójrz na mój przykład i na to co Ty napisałeś, i znajdź różnice :->

: 10 stycznia 2010, 12:59
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");

: 11 stycznia 2010, 09:55
autor: lessmian2
Sprawdź co Ci zwraca ssh2_exec.

: 11 stycznia 2010, 17:31
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ć?

: 11 stycznia 2010, 19:12
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().