ďťż

[PHP/Unix] Wyświetlanie obciążenia procesorów

       

Podstrony


telcocafe

Witam,

Mam problem, a właściwie pytanie.

Chcę, aby skrypt PHP pobierał poleceniem 'top' obciążenie procesorów przez procesy, dodawał je [obciążenie], a następnie wysypywał wynik w jednej liczbie (od 0 do 100 %).

Jak narazie udało mi się napisać "skrypt", który wyświetla obciążenie każdego procesu z osobna.

<?php $top = `top -b -n 1 | awk {'print $9'}`; echo $top; ?>

Teraz pytanie:

Jak mam dodać wartości wyświetlone w zmiennej $top?
Użytkownik CJg edytował ten post 15 sierpień 2008, 22:36


Jeżeli każdego procesu z osobna, to zakładam, że zmienna $top przechowuje liczbę. A skoro tak, to na logikę, można użyć takiego matematycznego znaku, jakim jest plus i dodać wszystko, co pobierzesz.

Heh, u mnie wynik top -bn 1 | awk {'print $9'} jest taki:
load stopped, 0.0%st buffers cached %CPU 9.9 2.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 [...] 0.0
Także trzeba by każdą linię parsować, czy pasuje do wzorca ^\d+\.\d+$
Jeśli tak, to trzeba daną wartość dodać np. do zmiennej $obciazenie.
Ot, cała logika ;)

<?php $wyk = "top -b -n 1 | awk {'print $9'}"; ob_start();system($wyk);$wynik = ob_get_contents();ob_end_clean(); $wynik = explode("%CPU", $wynik); $obc = 0; foreach(explode("\n", $wynik[1]) as $proc) { $obc += $proc; } echo $obc.'%'; ?>

np tak ? ;d

  • zanotowane.pl
  • doc.pisz.pl
  • pdf.pisz.pl
  • nvm.keep.pl

  • Sitedesign by AltusUmbrae.