首页 > php开发 > LINUX 系统参数探测包括cpu,时间,内存等

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

这款linux系统参数探测函数,可以计算出你当前机器的cpu是多少,内存多使用了多少,运行时间以及更新时间,实例代码如下:

<?php
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; 
      
    // 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();


本文地址:http://www.phprm.com/develop/fs5154.html

转载随意,但请附上文章地址:-)

标签:linux系统参数 linux参数探测

发表留言