<?php /* CPU */ unset($pattern, $str, $out); $str = shell_exec('more /proc/stat'); $pattern = "/(cpu[0-9]?)[\s]+([0-9]+)[\s]+([0-9]+)[\s]+([0-9]+)[\s]+([0-9]+)[\s]+([0-9]+)[\s]+([0-9]+)[\s]+([0-9]+)/"; preg_match_all($pattern, $str, $out); $res['cpu'] = round(100*($out[1][0]+$out[2][0]+$out[3][0])/($out[4][0]+$out[5][0]+$out[6][0]+$out[7][0]),2); /* MEM */ unset($pattern, $str, $out); $str = shell_exec('more /proc/meminfo'); $pattern = "/(.+):\s*([0-9]+)/"; preg_match_all($pattern, $str, $out); $res['mem']['total'] = round($out[2][0]/1024); $res['mem']['use'] = round(($out[2][0]-$out[2][1]-$out[2][2]-$out[2][3])/1024); $res['mem']['percent'] = round(100*($out[2][0]-$out[2][1]-$out[2][2]-$out[2][3])/$out[2][0]); /* NET */ unset($pattern, $str, $out); $str = shell_exec('cat /proc/net/dev'); $pattern = "/eth.*/"; preg_match_all($pattern, $str, $out); foreach ($out[0] as &$value) { $eth = explode(":",$value); $net[$eth[0]] = array_values(array_filter(explode(' ',$eth[1]),"check")); } function check($var){ if(is_numeric($var)){ return true; }else{ return false; } } foreach ($net as $key => $value) { $res['net'][$key]['in'] = $value[0]; $res['net'][$key]['out'] = $value[8]; } print_r($res);