【www.gdgbn.com--linux】
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("
", $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();