Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [PHP]Pomiar obciążenia CPU
tomsi
post
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.
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 8)
gothye
post
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
Go to the top of the page
+Quote Post
tomsi
post
Post #3





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

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


Windows XP
Go to the top of the page
+Quote Post
erix
post
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.
Go to the top of the page
+Quote Post
tomsi
post
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.
Go to the top of the page
+Quote Post
erix
post
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. (IMG:style_emoticons/default/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.
Go to the top of the page
+Quote Post
tomsi
post
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.'%';
Go to the top of the page
+Quote Post
thek
post
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 (IMG:style_emoticons/default/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ń.
Go to the top of the page
+Quote Post
tomsi
post
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?
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
2 Użytkowników czyta ten temat (2 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 22.08.2025 - 19:15