> 백엔드 개발 > PHP 튜토리얼 > Linux 서버 CPU, 메모리 및 하드 디스크 사용량을 얻기 위한 PHP 구현 코드

Linux 서버 CPU, 메모리 및 하드 디스크 사용량을 얻기 위한 PHP 구현 코드

WBOY
풀어 주다: 2016-07-25 08:59:31
원래의
2999명이 탐색했습니다.
  1. define("MONITORED_IP", "172.16.0.191") //모니터링되는 서버 IP 주소도 로컬 주소입니다
  2. Define("DB_SERVER", "172.16.7.2"); //데이터가 저장된 서버의 IP 주소
  3. define("DB_USER", "root");
  4. define("DB_PWD", " 111111");
  5. define("DB_NMAE","performance");
  6. class MyConnect{
  7. 공용 함수 connect($db_server,$db_user,$db_pwd,$db_name){
  8. $ conn = mysql_connect($db_server,$db_user,$db_pwd);
  9. if (!$conn){
  10. die('데이터베이스 연결 실패: ' . mysql_error());
  11. }
  12. $flag = mysql_select_db($db_name,$conn);
  13. if(!$flag){
  14. echo "

    데이터베이스 연결 오류!

    ";exit();
  15. }else{
  16. mysql_query("SET NAMES UTF8");
  17. }
  18. }
  19. }
  20. ?>
코드 복사

2. 서버 성능 데이터 파일 get_used_status.php를 가져옵니다.

  1. /**

  2. * 서버 성능 CPU, 메모리, 하드 디스크 및 기타 사용률 확인
  3. * bbs.it-home.org 편집
  4. */
  5. /*데이터 연결 시작*/
  6. include("conn.php");
  7. $obj_MyConnect = new MyConnect();
  8. $obj_MyConnect -> connect(DB_SERVER,DB_USER,DB_PWD,DB_NMAE)
  9. /*데이터 연결 끝 */
  10. function get_used_status(){
  11. $fp = popen('top -b -n 2 | grep -E "^(Cpu|Mem|Tasks)"',"r");/ /특정 순간의 시스템 CPU 및 메모리 사용량 가져오기
  12. $rs = "";
  13. while(!feof($fp)){
  14. $rs .= fread($fp,1024);
  15. }
  16. pclose($fp);
  17. $sys_info = 폭발("n",$rs);

  18. $tast_info = 폭발(",",$sys_info [3]);//배열 처리

  19. $cpu_info =explore(",",$sys_info[4]); //CPU 점유 배열
  20. $mem_info =explore(",",$sys_info[5 ] ); //메모리 점유 배열

  21. //실행 중인 프로세스 수

  22. $tast_running = Trim(trim($tast_info[1],'running'))
  23. //CPU 사용량
  24. $cpu_usage = Trim(trim($cpu_info[0],'Cpu(s): '),'%us') //백분율
  25. / /메모리 사용량
  26. $mem_total = Trim(trim($mem_info[0],'Mem: '),'k total')
  27. $mem_used = Trim($mem_info[1] ,'k 사용됨') ;
  28. $mem_usage = round(100*intval($mem_used)/intval($mem_total),2); //백분율
  29. */

  30. $fp = popen('df -lh | grep -E "^(/)"',"r");
  31. $rs = fread($fp,1024) ;
  32. pclose( $fp);
  33. $rs = preg_replace("/s{2,}/",' ',$rs); //여러 공백을 "_"로 바꿉니다.
  34. $ hd =explore(" ",$ rs);
  35. $hd_avail = Trim($hd[3],'G'); //디스크 사용 가능 공간 크기 단위 G
  36. $hd_usage = Trim($hd[4 ],'%') / /마운트 포인트 백분율
  37. //print_r($hd);
  38. /*하드 디스크 사용 종료*/
  39. //감지 시간
  40. $fp = popen("date "%Y- %m-%d %H:%M"","r");
  41. $rs = fread($fp,1024);
  42. pclose($fp)
  43. $Detection_time = Trim($ rs);
  44. /*IP 주소 가져오기 시작*/
  45. /*
  46. $fp = popen('ifconfig eth0 | grep -E "(inet addr )"','r');
  47. $rs = fread($fp,1024);
  48. pclose($fp);
  49. $rs = preg_replace("/s{2,}/", ' ',trim($rs)) ; //여러 공백을 "_"로 대체
  50. $rs =explore(" ",$rs);
  51. $ip = Trim($rs[1], 'addr:');
  52. */
  53. /*IP 주소 가져오기end*/
  54. /*
  55. $file_name = "/tmp/data.txt"; // 절대 경로: homedata.dat
  56. $file_pointer = fopen($file_name, " a "); // "w"는 모드입니다. 자세한 내용은 아래를 참조하세요.
  57. fwrite($file_pointer,$ip); // 먼저 파일을 0바이트 크기로 자른 다음 씁니다.
  58. fclose($file_pointer) ; // 끝
  59. */
  60. return array('cpu_usage'=>$cpu_usage,'mem_usage'=>$mem_usage ,'hd_avail'=>$hd_avail,'hd_usage'=> ;$hd_usage,'tast_running'=>$tast_running,'Detection_time'=>$Detection_time);
  61. }
  62. // echo date("Y-m-d H:i:s",time() )."
    ";
  63. $status=get_used_status();
  64. $sql = "성능에 삽입(ip,cpu_usage,mem_usage,hd_avail,hd_usage,tast_running,Detection_time) ";
  65. $sql .= " value('".MONITORED_IP."','".$status['cpu_usage']."',' ".$status['mem_usage']."','" .$status['hd_avail']."','".$status['hd_usage']."','".$status['tast_running' ]."','".$status['Detection_time'] ."')";
  66. $query = mysql_query($sql) or die("SQL 문 실행 실패!");
  67. unset($ status);
  68. //echo date(" Y-m-d H:i:s",time())."
    ";
  69. ?>

코드 복사


원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿