Linux で PHP を使用してサーバーのステータスを取得するための簡単なコード。特に言うことはありません。関数に移動するだけです:
function get_used_status(){
$fp = Popen('top -b -n 2 | grep -E "^(Cpu|Mem|Tasks)"',"r");// システムの CPU とメモリを取得します特定の時間の使用法
$rs = "";
while(!feof($fp)){
$rs .= fread($fp,1024);
}
pclose($fp);
$sys_info =explode(" n ",$rs);
$tast_info =explode(",",$sys_info[3]);//処理配列
$cpu_info =explode(",",$sys_info[4]); //CPU占有配列
$mem_info =explode( " ,",$sys_info[5]); //メモリ占有配列
//実行中のプロセス数
$tast_running = trim(trim($tast_info[1],'running'));
//CPU使用率
$cpu_usage = trim(trim($cpu_info[0],'Cpu (s) ): '),'%us'); //パーセント
//メモリ使用量
$mem_total =rim(trim($mem_info[0],'Mem: '),'k total'); trim($mem_info[1],'k used');
$mem_usage =round(100*intval($mem_used)/intval($mem_total),2); //パーセント
$fp = Popen('df -lh | grep -E "^(/)"',"r");
$rs = fread($fp,1024);
pclose( $fp);
$rs = preg_replace("/s{2,}/",' ',$rs); //複数のスペースを "_" に置き換えます
$hd =explode(" ",$rs) ;
$hd_avail = trim($hd[3],'G'); //G 単位のディスク空き容量 $hd_usage = trim($hd[4],'%') //マウント ポイントの割合
//print_r ($hd);
/*ハードディスク使用終了*/
//検出時間
$fp = Popen("date +"%Y-%m-%d %H:%M""," r") ;
$rs = fread($fp,1024);
pclose($fp);
$detection_time = trim($rs);
/*IP アドレスの取得 begin*/
/*
$fp = Popen(' ifconfig eth0 | grep -E "(inet addr)"','r');
$rs = fread($fp,1024);
pclose($fp);
$rs = preg_replace("/s {2, }/",' ',trim($rs)); //複数のスペースを「_」に置き換えます
$rs =explode(" ",$rs);
$ip = trim($rs[ 1],'addr :');
*/
/*IP アドレスの取得end*/
/*
$file_name = "/tmp/data.txt"; // 絶対パス: homedata.dat
$file_pointer = fopen ($file_name, "a+ "); // "w" はモードです、詳細は以下を参照してください
fwrite($file_pointer,$ip); // まずファイルを 0 バイトにカットし、次に書き込みます
fclose ($file_pointer); // 終了
* /
return array('cpu_usage'=>$cpu_usage,'mem_usage'=>$mem_usage,'hd_avail'=>$hd_avail,'hd_usage'=>$ hd_usage,'tast_running'=>$tast_running ,'検出時間'=>$検出時間);
}
http://www.bkjia.com/PHPjc/776844.html