freebsd 安装_FreeBSD 系统参数探测 cpu,内存

更新时间:2016-06-22    来源:freebsd    手机版     字体:

【www.bbyears.com--freebsd】

//取得参数值 FreeBSD

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.bbyears.com/caozuoxitong/24797.html

热门标签

更多>>

本类排行