Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP]Klasa dla Linuxa
Forum PHP.pl > Forum > Przedszkole
karolo_k
Witam, poszukuję jakiejś klasy php, której zadaniem jest wyciągnięcie z serwera konkretnych danych o wykorzystaniu zasobów serwera. Dobrze by było żeby ta dane były gdzieś zgrabnie zapisane tak żebym mógł je przedstawić na mojej stronie w postaci jakichś wykresów czy słupków procentowych. Chodzi mi o takie dane jak: pojemność dysku i zajęte miejsce; aktualnie wykorzystywanie procesora w %; wykorzystana i całkowita pamięć RAM, no i co tam jeszcze ciekawego się da np Uptime i Load average arrowheadsmiley.png
Dziękuję za pomoc.
uupah5
alternatywa? nagios.org
xxdrago
  1. <?php
  2. exec ("cat /proc/meminfo", $details);
  3. $r1 = $details[0];
  4. $ram1 = intval(preg_replace('/[^0-9]/', '', $r1)) ;
  5. $r2 = $details[1];
  6. $ram2 = intval(preg_replace('/[^0-9]/', '', $r2)) ;
  7. $wynik = $ram2 / $ram1;
  8. $fram = $wynik * 100;
  9. $ram = round($fram, 0);
  10. $sz = 100 - $ram;
  11. echo "Ram: " .$sz." %";
  12. ?>
  13. <br>
  14. <?php
  15. preg_match("/averages?: ([0-9\.]+),[\s]+([0-9\.]+),[\s]+([0-9\.]+)/",@exec('uptime'),$load);
  16. echo "".$load[1]." - ".$load[2]." - ".$load[3]."";
  17. ?>
  18. <br>
  19. <?php
  20. function mksize($bytes)
  21. {
  22. if ($bytes < 1000 * 1024)
  23. return number_format($bytes / 1024, 2) . " kB";
  24. elseif ($bytes < 1000 * 1048576)
  25. return number_format($bytes / 1048576, 2) . " MB";
  26. elseif ($bytes < 1000 * 1073741824)
  27. return number_format($bytes / 1073741824, 2) . " GB";
  28. else
  29. return number_format($bytes / 1099511627776, 2) . " TB";
  30. }
  31. $sciezka = "/home";
  32. $total = disk_total_space($sciezka);
  33. $free = disk_free_space($sciezka);
  34. $usage = $total - $free;
  35. $procent = round(($usage/$total) * 100, 0);
  36. echo " $procent %</br>";
  37. echo "Stan dysku " .mksize($usage). " / ".mksize($total);
  38. ?>
  39. <br>
  40. <?php
  41. $UpTime = file('/proc/uptime');
  42. $UpTime = $UpTime[0];
  43. $UpSecs = floor($UpTime % 60);
  44. $UpMins = floor($UpTime / 60 % 60);
  45. $UpHours = floor($UpTime / 3600 % 24);
  46. $UpDays = floor($UpTime / 86400);
  47. $UpTime = 'Uptime: ';
  48. if ($UpDays > 0)
  49. {
  50. $UpTime .= $UpDays;
  51. $UpTime .= ' days ';
  52. }
  53. if ($UpHours > 0)
  54. {
  55. $UpTime .= $UpHours;
  56. $UpTime .= ' hours ';
  57. }
  58. if ($UpMins > 0)
  59. {
  60. $UpTime .= $UpMins;
  61. $UpTime .= ' minutes ';
  62. }
  63. echo $UpTime;
  64. ?>


Lub:
http://phpsysinfo.sourceforge.net/

Demo:
http://phpsysinfo.sourceforge.net/phpsysin...hp?disp=dynamic
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-2025 Invision Power Services, Inc.