Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [Pytanie][PHP] Stworzenie konsoli i wydawanie poleceń ssh2
Narkon
post 11.04.2011, 10:25:02
Post #1





Grupa: Zarejestrowani
Postów: 9
Pomógł: 0
Dołączył: 11.04.2011

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


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!

Ten post edytował Narkon 11.04.2011, 13:13:12
Go to the top of the page
+Quote Post
-krzotr-
post 11.04.2011, 10:41:32
Post #2





Goście







Za pomocą ps dostajesz listę procesów
Grep wyszukujesz dany PID
Kill żeby zabić proces.
Go to the top of the page
+Quote Post
Narkon
post 11.04.2011, 10:56:41
Post #3





Grupa: Zarejestrowani
Postów: 9
Pomógł: 0
Dołączył: 11.04.2011

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


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.

Ten post edytował Narkon 11.04.2011, 11:01:06
Go to the top of the page
+Quote Post
nospor
post 11.04.2011, 11:04:27
Post #4





Grupa: Moderatorzy
Postów: 36 476
Pomógł: 6301
Dołączył: 27.12.2004




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



--------------------

"Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista
"Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer

Go to the top of the page
+Quote Post
Narkon
post 12.04.2011, 12:26:24
Post #5





Grupa: Zarejestrowani
Postów: 9
Pomógł: 0
Dołączył: 11.04.2011

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


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...
Go to the top of the page
+Quote Post
ylk
post 12.04.2011, 13:51:12
Post #6





Grupa: Zarejestrowani
Postów: 194
Pomógł: 26
Dołączył: 9.01.2011
Skąd: /dev/null

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


to zamiast kill możesz użyć
Kod
killall nazwa_procesu
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: 3.06.2024 - 14:25