Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [Pytanie][PHP] Stworzenie konsoli i wydawanie poleceń ssh2
Forum PHP.pl > Forum > Gotowe rozwiązania > Szukam
Narkon
Witajcie!

Otóż zabrałem się za pisanie panelu do 'obsługi' serwerów CS na Dedyku.
Jak na razie wszystko szło gładko, lecz teraz nastał ta chwila której długo oczekiwałem biggrin.gif nie wiem jak się do tego zabrać no ale do rzeczy,
otóż serwery cs'a włączam/restartuję poprzez wydanie odpowiedniej komendy przez ssh2, to jeszcze potrafię zrobić lecz aby wyłączyć serwer muszę z killować screen'a. I tutaj jest problem, szukałem na wielu stronach niejako 'sposobu' na wyłączenie screena.
Wpadłem na pomysł aby to zrobić tak:
  1. #przykład jak to ma wyglądać
  2. $serwer = 'serwer_1';


  1. $command = "cd ~; cd ".$wiersz['sciezka']."; screen -r $serwer"; // Start
  2. $connection = ssh2_connect($server, 22); // Laczenie
  3. ssh2_auth_password($connection, $login, $password); // Logowanie
  4. $stream = ssh2_exec($connection, $command); // Exc
  5. fwrite( $stream, "quit \n");
  6.  
  7. if($stream == TRUE)
  8. {
  9. echo "".good_mg('Serwer został zatrzymany poprawnie!')."";
  10. }
  11. else
  12. {
  13. echo "".bad_mg('Nie udało się zatrzymać serwera!')."";
  14. }

Wszystko pięknie, skrypt łączy się z serwerem, loguje się, wykonuję $stream ale fwrite już nie. Ale może najpierw wytłumaczę co chcę przez to osiągnąć.
Wykombinowałem to w ten sposób że skrypt wchodzi w odpowiedni folder wywołuje włączony screen poprzez screen -r $serwer i powinien w screenie napisać quit co spowodowało by zatrzymanie screena oraz wyłączenie serwera.
Troche dziwnie to opisałem ale mam nadzieję że ktoś zrozumie o co mi chodzi biggrin.gif

Następną sprawą z którą mam problem jest to iż chcę napisać konsolę która będzie wyświetlać dane pochodzące ze screena, oraz inputa dzięki któremu będę mógł wpisywać komendy np ban PLAYER 5 - co za skutkuje zbanowaniem użytkownika o nicku PLAYER na 5 min.

Mam nadzieję że ktoś zdoła mi pomóc biggrin.gif

Pozdrawiam!
krzotr
Za pomocą ps dostajesz listę procesów
Grep wyszukujesz dany PID
Kill żeby zabić proces.
Narkon
No dobra wyświetlam procesy ale co dalej ? Grep z tego co wiem przeszukuje pliki a nie dane wyświetlone przez komendy typu ps,top itd.
nospor
Cytat
Grep z tego co wiem przeszukuje pliki a nie dane wyświetlone przez komendy typu ps,top itd.
Nic bardziej mylnego

ps | grep to_czego_szukasz
np:
ps | grep 11501

Narkon
Ok załóżmy że znalazłem "linie" z screenem który chce wyłączyć lecz jak mam mu podać pid tego screena ?
Przecież za każdym razem gdy serwer wyłączę po ponownym włączeniu pid się zmienia.

Pozdrawiam!

odświeżam...
ylk
to zamiast kill możesz użyć
Kod
killall nazwa_procesu
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2024 Invision Power Services, Inc.