首页 > php开发 > FreeBSD 系统参数探测 cpu,内存

FreeBSD 系统参数探测 cpu,内存

这是一款php的系统参数探测,他可以检测到FreeBSD cpu,内存,更新时间,运行时间等。

//取得参数值 FreeBSD

<?php
function get_key($keyName) {
    return do_command('sysctl', "-n $keyName");
}
// 确定执行文件位置 FreeBSD
function find_command($commandName) {
    $path = array(
        '/bin',
        '/sbin',
        '/usr/bin',
        '/usr/sbin',
        '/usr/local/bin',
        '/usr/local/sbin'
    );
    foreach ($path as $p) {
        if (@is_executable("$p/$commandName")) return "$p/$commandName";
    }
    return false;
}
function sys_freebsd() {
    //CPU
    if (false === ($res['cpu']['num'] = get_key("hw.ncpu"))) return false;
    $res['cpu']['detail'] = get_key("hw.model");
    //LOAD AVG
    if (false === ($res['loadAvg'] = get_key("vm.loadavg"))) return false;
    $res['loadAvg'] = str_replace("{", "", $res['loadAvg']);
    $res['loadAvg'] = str_replace("}", "", $res['loadAvg']);
    //UPTIME
    if (false === ($buf = get_key("kern.boottime"))) return false;
    $buf = explode(' ', $buf);
    $sys_ticks = time() - intval($buf[3]);
    $min = $sys_ticks / 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 === ($buf = get_key("hw.physmem"))) return false;
    $res['memTotal'] = round($buf / 1024 / 1024, 2);
    $buf = explode(" ", do_command("vmstat", ""));
    $buf = explode(" ", trim($buf[2]));
    $res['memFree'] = round($buf[5] / 1024, 2);
    $res['memUsed'] = ($res['memTotal'] - $res['memFree']);
    $res['memPercent'] = (floatval($res['memTotal']) != 0) ? round($res['memUsed'] / $res['memTotal'] * 100, 2) : 0;
    $buf = explode(" ", do_command("swapinfo", "-k"));
    $buf = $buf[1];
    preg_match_all("/([0-9]+)s+([0-9]+)s+([0-9]+)/", $buf, $bufArr);
    $res['swapTotal'] = round($bufArr[1][0] / 1024, 2);
    $res['swapUsed'] = round($bufArr[2][0] / 1024, 2);
    $res['swapFree'] = round($bufArr[3][0] / 1024, 2);
    $res['swapPercent'] = (floatval($res['swapTotal']) != 0) ? round($res['swapUsed'] / $res['swapTotal'] * 100, 2) : 0;
    return $res;
}
//针探使用方法
sys_freebsd();


本文地址:http://www.phprm.com/develop/FreeBSD-cpu.html

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

标签:none

发表留言