zoukankan      html  css  js  c++  java
  • 简单linux下php获取服务器状态代码

    简单的linux下的php获取服务器状态的代码,不多说-直接上函数:

     function get_used_status(){
      $fp = popen('top -b -n 2 | grep -E "^(Cpu|Mem|Tasks)"',"r");//获取某一时刻系统cpu和内存使用情况
      $rs = "";
      while(!feof($fp)){
       $rs .= fread($fp,1024);
      }
      pclose($fp);
      $sys_info = explode(" ",$rs);

      $tast_info = explode(",",$sys_info[3]);//进程 数组
      $cpu_info = explode(",",$sys_info[4]);  //CPU占有量  数组
      $mem_info = explode(",",$sys_info[5]); //内存占有量 数组

      //正在运行的进程数
      $tast_running = trim(trim($tast_info[1],'running'));
      //CPU占有量
      $cpu_usage = trim(trim($cpu_info[0],'Cpu(s): '),'%us');  //百分比
      
      //内存占有量
      $mem_total = trim(trim($mem_info[0],'Mem: '),'k total'); 
      $mem_used = trim($mem_info[1],'k used');
      $mem_usage = round(100*intval($mem_used)/intval($mem_total),2);  //百分比
      

      /*硬盘使用率 begin*/
      $fp = popen('df -lh | grep -E "^(/)"',"r");
      $rs = fread($fp,1024);
      pclose($fp);
      $rs = preg_replace("/s{2,}/",' ',$rs);  //把多个空格换成 “_”
      $hd = explode(" ",$rs);
      $hd_avail = trim($hd[3],'G'); //磁盘可用空间大小 单位G
      $hd_usage = trim($hd[4],'%'); //挂载点 百分比
      //print_r($hd);
      /*硬盘使用率 end*/  
      
      //检测时间
      $fp = popen("date +"%Y-%m-%d %H:%M"","r");
      $rs = fread($fp,1024);
      pclose($fp);
      $detection_time = trim($rs);
      
      /*获取IP地址  begin*/
      /*
      $fp = popen('ifconfig eth0 | grep -E "(inet addr)"','r');
      $rs = fread($fp,1024);
      pclose($fp);
      $rs = preg_replace("/s{2,}/",' ',trim($rs));  //把多个空格换成 “_”
      $rs = explode(" ",$rs);
      $ip = trim($rs[1],'addr:');
      */
      /*获取IP地址 end*/
      /*
      $file_name = "/tmp/data.txt"; // 绝对路径: homedata.dat 
      $file_pointer = fopen($file_name, "a+"); // "w"是一种模式,详见后面
      fwrite($file_pointer,$ip); // 先把文件剪切为0字节大小, 然后写入
      fclose($file_pointer); // 结束
      */
      
      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);
     }

  • 相关阅读:
    Android开发 使用 adb logcat 显示 Android 日志
    【嵌入式开发】向开发板中烧写Linux系统-型号S3C6410
    C语言 结构体相关 函数 指针 数组
    C语言 命令行参数 函数指针 gdb调试
    C语言 指针数组 多维数组
    Ubuntu 基础操作 基础命令 热键 man手册使用 关机 重启等命令使用
    C语言 内存分配 地址 指针 数组 参数 实例解析
    CRT 环境变量注意事项
    hadoop 输出文件 key val 分隔符
    com.mysql.jdbc.exceptions.MySQLNonTransientConnectionException: Too many connections
  • 原文地址:https://www.cnblogs.com/min-cj/p/linux_php_cpu.html
Copyright © 2011-2022 走看看