Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [PHP]Pomiar obciążenia CPU
tomsi
post 3.03.2010, 18:40:43
Post #1





Grupa: Zarejestrowani
Postów: 379
Pomógł: 45
Dołączył: 30.06.2007

Ostrzeżenie: (10%)
X----


Znalazłem w internecie taki kod:

  1. $wyk = 'top -b -n 1 | awk {'print $9'}';
  2.  
  3. echo "<br>";
  4. ob_start();system($wyk);$wynik = ob_get_contents();ob_end_clean();
  5. $wynik = explode("%CPU", $wynik);
  6. $obc = 0;
  7. foreach(explode("\n", $wynik[1]) as $proc)
  8. {
  9. $obc += $proc;
  10. }
  11.  
  12. echo $obc.'%';


Czemu dostaje zawsze odpowiedź 0%?


Jak wstawię taki znaleźiony kod:
  1. $output = shell_exec ( 'ls -lart' );
  2. echo "<pre>$output</pre>" ;

to dostaje pustą stronę.

Dodam, że pracuje lokalnie na apache'u.


--------------------
Jeśli Ci pomogłem kliknij "Pomógł"
Jeśli Ty mi pomogłeś kliknę "Pomógł"
Go to the top of the page
+Quote Post
gothye
post 3.03.2010, 18:53:45
Post #2





Grupa: Zarejestrowani
Postów: 702
Pomógł: 65
Dołączył: 16.03.2009

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


pracujesz na linux ? to pobierasz z /proc/loadavg


--------------------
Nie udzielam pomocy poprzez PW
Go to the top of the page
+Quote Post
tomsi
post 3.03.2010, 19:12:07
Post #3





Grupa: Zarejestrowani
Postów: 379
Pomógł: 45
Dołączył: 30.06.2007

Ostrzeżenie: (10%)
X----


Windows XP


--------------------
Jeśli Ci pomogłem kliknij "Pomógł"
Jeśli Ty mi pomogłeś kliknę "Pomógł"
Go to the top of the page
+Quote Post
erix
post 3.03.2010, 19:22:39
Post #4





Grupa: Moderatorzy
Postów: 15 467
Pomógł: 1451
Dołączył: 25.04.2005
Skąd: Szczebrzeszyn/Rzeszów




Jak to ma na Windowsie działać, skoro takiego polecenia domyślnie nie ma?

Ściągnij sobie pakiet msys i dodaj do ścieżki poszukiwań w zmiennej środowiskowej PATH.


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

ZCE :: Pisząc PW załączaj LINK DO TEMATU i TYLKO w sprawach moderacji :: jakiś błąd - a TREŚĆ BŁĘDU? :: nie ponaglaj z odpowiedzią via PW!
Go to the top of the page
+Quote Post
tomsi
post 3.03.2010, 19:37:42
Post #5





Grupa: Zarejestrowani
Postów: 379
Pomógł: 45
Dołączył: 30.06.2007

Ostrzeżenie: (10%)
X----


Ściągnąłem to:
http://sourceforge.net/projects/mingw/file...11.exe/download

a w zmiennych środowiskowych dodałem tak:

Nazwa zmiennej: PATH
Wartość zmiennej: C:\msys\1.0

I dalej nie działa.


--------------------
Jeśli Ci pomogłem kliknij "Pomógł"
Jeśli Ty mi pomogłeś kliknę "Pomógł"
Go to the top of the page
+Quote Post
erix
post 3.03.2010, 20:09:16
Post #6





Grupa: Moderatorzy
Postów: 15 467
Pomógł: 1451
Dołączył: 25.04.2005
Skąd: Szczebrzeszyn/Rzeszów




Ale tam jest chyba jeszcze podkatalog bin, o ile pamiętam. winksmiley.jpg

Poza tym, musisz zrestartować demona, aby zmienne środowiskowe były uaktualnione. Poza tym, masz możliwość modyfikowania ich dla tylko użytkownika albo całego systemu. To również jest istotne.


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

ZCE :: Pisząc PW załączaj LINK DO TEMATU i TYLKO w sprawach moderacji :: jakiś błąd - a TREŚĆ BŁĘDU? :: nie ponaglaj z odpowiedzią via PW!
Go to the top of the page
+Quote Post
tomsi
post 3.03.2010, 20:23:16
Post #7





Grupa: Zarejestrowani
Postów: 379
Pomógł: 45
Dołączył: 30.06.2007

Ostrzeżenie: (10%)
X----


Kod z shell_exec działa, ale ten nie

  1. $wyk = 'top -b -n 1 | awk {'print $9'}';
  2.  
  3. echo "<br>";
  4. ob_start();system($wyk);$wynik = ob_get_contents();ob_end_clean();
  5. $wynik = explode("%CPU", $wynik);
  6. $obc = 0;
  7. foreach(explode("\n", $wynik[1]) as $proc)
  8. {
  9. $obc += $proc;
  10. }
  11.  
  12. echo $obc.'%';


--------------------
Jeśli Ci pomogłem kliknij "Pomógł"
Jeśli Ty mi pomogłeś kliknę "Pomógł"
Go to the top of the page
+Quote Post
thek
post 3.03.2010, 23:33:28
Post #8





Grupa: Moderatorzy
Postów: 4 362
Pomógł: 714
Dołączył: 12.02.2009
Skąd: Jak się położę tak leżę :D




A pomyślałeś o jednej sprawie jaką są uprawnienia? Możesz określać jakie polecenia powłoki są dla usera dostępne a jakie nie. Możliwe, że top zostało zablokowane przez providera, by nie mogli odczytać procesów uruchomionych na danej maszynie, a tym samym nie podjęli próby ubicia jakiegoś procesu. Ja miałem do czynienia z takimi niedoróbkami administracyjnymi. Założono na kompie publicznym blokadę na wyświetlanie Menedżera procesów w trybie GUI i limitowano userom dostęp do netu na okres godziny. Po niej komp się wyłączał automatycznie. Tylko że nie zablokowano dostępu do konsoli i jej poleceń. Efekt? Używałem kompa ile chciałem bo robiłem sekwencję: cmd -> tasklist -> wyszukanie procesu nadzorującego -> taskkill smile.gif Polecenie top jest niebezpieczne bo podaje Ci PID procesów uruchomionych. Jeśli masz odpowiedni poziom uprawnień dla Apache'a to możesz zrobić jazdę na serwerze tłukąc procesy jakie wpadną do kręgu Twoich uprawnień.


--------------------
Najpierw był manual... Jeśli tam nie zawarto słów mądrości to zapytaj wszechwiedzącego Google zadając mu własciwe pytania. A jeśli i on milczy to Twój problem nie istnieje :D
Go to the top of the page
+Quote Post
tomsi
post 4.03.2010, 16:55:21
Post #9





Grupa: Zarejestrowani
Postów: 379
Pomógł: 45
Dołączył: 30.06.2007

Ostrzeżenie: (10%)
X----


No ok, ale ja mam apacha lokalnie zainstalowanego. Można jakoś sprawdzić te uprawnienia?


--------------------
Jeśli Ci pomogłem kliknij "Pomógł"
Jeśli Ty mi pomogłeś kliknę "Pomógł"
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: 5.07.2025 - 21:00