加入收藏 | 设为首页 | 会员中心 | 我要投稿 云计算网_宿迁站长网 (https://www.0527zz.com/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 站长学院 > PHP教程 > 正文

LINUX 系统参数探测包括cpu,时间,内存等

发布时间:2022-02-17 09:08:38 所属栏目:PHP教程 来源:互联网
导读:这款linux系统参数探测函数,可以计算出你当前机器的cpu是多少,内存多使用了多少,运行时间以及更新时间,实例代码如下: function sys_linux() { // CPU if (false === ($str = @file(/proc/cpuinfo))) return false; $str = implode(, $str); @preg_match_a
  这款linux系统参数探测函数,可以计算出你当前机器的cpu是多少,内存多使用了多少,运行时间以及更新时间,实例代码如下:
 
      function sys_linux()
      {
          // CPU
          if (false === ($str = @file("/proc/cpuinfo"))) return false;
          $str = implode("", $str);
          @preg_match_all("/models+names{0,}:+s{0,}([ws)(.]+)[ ]+/", $str, $model);
          //@preg_match_all("/cpus+MHzs{0,}:+s{0,}([d.]+)[ ]+/", $str, $mhz);
          @preg_match_all("/caches+sizes{0,}:+s{0,}([d.]+s{0,}[A-Z]+[ ]+)/", $str, $cache);
          if (false !== is_array($model[1]))
              {
              $res['cpu']['num'] = sizeof($model[1]);
              for($i = 0; $i < $res['cpu']['num']; $i++)
              {
                  $res['cpu']['detail'][] = "类型:".$model[1][$i]." 缓存:".$cache[1][$i];
              }
              if (false !== is_array($res['cpu']['detail'])) $res['cpu']['detail'] = implode("<br />", $res['cpu']['detail']);
              }
            
            
          // UPTIME
          if (false === ($str = @file("/proc/uptime"))) return false;
          $str = explode(" ", implode("", $str));
          $str = trim($str[0]);
          $min = $str / 60;
          $hours = $min / 60;
          $days = floor($hours / 24);
          $hours = floor($hours - ($days * 24));
          $min = floor($min - ($days * 60 * 24) - ($hours * 60));
          if ($days !== 0) $res['uptime'] = $days."天";
          if ($hours !== 0) $res['uptime'] .= $hours."小时";
          $res['uptime'] .= $min."分钟";
            
          // MEMORY
          if (false === ($str = @file("/proc/meminfo"))) return false;
          $str = implode("", $str);
          preg_match_all("/MemTotals{0,}:+s{0,}([d.]+).+?MemFrees{0,}:+s{0,}([d.]+).+?SwapTotals{0,}:+s{0,}([d.]+).+?SwapFrees{0,}:+s{0,}([d.]+)/s", $str, $buf);
            
          $res['memTotal'] = round($buf[1][0]/1024, 2);
          $res['memFree'] = round($buf[2][0]/1024, 2);
          $res['memUsed'] = ($res['memTotal']-$res['memFree']);
          $res['memPercent'] = (floatval($res['memTotal'])!=0)?round($res['memUsed']/$res['memTotal']*100,2):0;
            
          $res['swapTotal'] = round($buf[3][0]/1024, 2);
          $res['swapFree'] = round($buf[4][0]/1024, 2);
          $res['swapUsed'] = ($res['swapTotal']-$res['swapFree']);
          $res['swapPercent'] = (floatval($res['swapTotal'])!=0)?round($res['swapUsed']/$res['swapTotal']*100,2):0;
           //开源代码Cuoxin.com
          // LOAD AVG
          if (false === ($str = @file("/proc/loadavg"))) return false;
          $str = explode(" ", implode("", $str));
          $str = array_chunk($str, 3);
          $res['loadAvg'] = implode(" ", $str[0]);
            
          return $res;
      }
  //调用方法
  sys_linux();

(编辑:云计算网_宿迁站长网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!