これは、FreeBSDのCPU、メモリ、更新時間、実行時間などを検出できるPHPシステムパラメータ検出です。
FreeBSD システムパラメータ検出 CPU、メモリ
/*
これはphpチュートリアルのシステムパラメータ検出です。FreeBSDのCPU、メモリ、更新時間、実行時間などを検出できます。
*/
//パラメータ値を取得 FreeBSD
関数 get_key($keyName)
{
return do_command('sysctl', "-n $keyName");
}
// 実行可能ファイル FreeBSD の場所を決定します
関数 find_command($commandName)
{
$path = array('/bin', '/sbin', '/usr/bin', '/usr/sbin', '/usr/local/bin', '/usr/local/sbin');
foreach($p としての $path)
{
if (@is_executable("$p/$commandName")) return "$p/$commandName";
}
false を返します;
}
関数sys_freebsd()
{
//CPU
if (false === ($res['cpu']['num'] = get_key("hw.ncpu"))) return false;
$res['cpu']['detail'] = get_key("hw.model");
//平均ロード
if (false === ($res['loadAvg'] = get_key("vm.loadavg"))) return false;
$res['loadAvg'] = str_replace("{", "", $res['loadAvg']);
$res['loadAvg'] = str_replace("}", "", $res['loadAvg']);
//稼働時間
if (false === ($buf = get_key("kern.boottime"))) return false;
$buf =explode(' ', $buf);
$sys_ticks = time() - intval($buf[3]);
$min = $sys_ticks / 60;
$時間 = $分 / 60;
$days = フロア($hours / 24);
$hours = フロア($hours - ($days * 24));
$min = フロア($min - ($days * 60 * 24) - ($hours * 60));
if ($days !== 0) $res['uptime'] = $days."天";
if ($hours !== 0) $res['uptime'] .= $hours."小時間";
$res['uptime'] .= $min."分钟";
//メモリー
if (false === ($buf = get_key("hw.physmem"))) return false;
$res['memTotal'] =round($buf/1024/1024, 2);
$buf =explode("n", do_command("vmstat", ""));
$buf =explode(" ", トリム($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("n", 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;
$res を返します;
}
//针探使用方法
sys_freebsd();