PHP, wykonywanie poleceń przez ssh2()
: 31 października 2010, 21:52
Witam.
Próbuję napisać skrypt PHP z wykorzystaniem ssh2_exec(), dzięki któremu mogę podglądać zawartość programu screen ale nie tylko! Mogę również wysłać do niego dowolnym poleceniem, co do niedawna wydawało mi się niemożliwe. Przeszukałem całe Google i wszędzie informują, że potrzebny do tego jest terminal, że z php tego nie zrobię i tak dalej. Ale jednak, udało się.
Teraz jednak pojawia się jeden problem.
Polecenie, które wstawia polecenie do programu screen działa przez ssh2_exec() tylko i wyłącznie jeśli uprzednio chociaż raz otworzę program screen przez terminal (przez putty lub inny program). Jeśli tego nie zrobię mój skrypt nie działa. Nie mam pojęcia dlaczego tak się dzieje. Poniżej zamieszczam kod skryptu PHP.
[php]$wykonaj = $_POST[wykonaj];
$cmd = "screen -r PID -X eval \"stuff '$wykonaj'\\012\"";
ssh2_exec($con, $cmd);[/php]
Jeżeli ktoś ma pojęcie dlaczego takie coś się dzieje proszę o pomoc
Próbuję napisać skrypt PHP z wykorzystaniem ssh2_exec(), dzięki któremu mogę podglądać zawartość programu screen ale nie tylko! Mogę również wysłać do niego dowolnym poleceniem, co do niedawna wydawało mi się niemożliwe. Przeszukałem całe Google i wszędzie informują, że potrzebny do tego jest terminal, że z php tego nie zrobię i tak dalej. Ale jednak, udało się.
Teraz jednak pojawia się jeden problem.
Polecenie, które wstawia polecenie do programu screen działa przez ssh2_exec() tylko i wyłącznie jeśli uprzednio chociaż raz otworzę program screen przez terminal (przez putty lub inny program). Jeśli tego nie zrobię mój skrypt nie działa. Nie mam pojęcia dlaczego tak się dzieje. Poniżej zamieszczam kod skryptu PHP.
[php]$wykonaj = $_POST[wykonaj];
$cmd = "screen -r PID -X eval \"stuff '$wykonaj'\\012\"";
ssh2_exec($con, $cmd);[/php]
Jeżeli ktoś ma pojęcie dlaczego takie coś się dzieje proszę o pomoc