function getUbuntuInfo(){
//打开进程文件指针。打开一个指向进程的管道,该进程由派生给定的 command 命令执行而产生
$fp = popen('top -b -n 2 | grep -E "^(%Cpu|KiB Mem|Tasks)"',"r");//获取某一时刻系统cpu和内存使用情况
$rs = "";
while(!feof($fp)){ $rs .= fread($fp,1024); }
pclose($fp);
$sys_info = explode("\n",$rs);
//进程数据
$task_info = explode(",",trim(@$sys_info[3],'Tasks:'));
//正在运行的进程数
$task_total = trim(trim(@$task_info[0],'total'));
$task_running = trim(trim(@$task_info[1],'running'));
//CPU数据
//us 用户空间占用CPU百分比
//sy 内核空间占用CPU百分比
//ni 用户进程空间内改变过优先级的进程占用CPU百分比
//id 空闲CPU百分比
//wa 等待输入输出的CPU时间百分比
//hi 硬件中断
//si 软件中断
//st: 实时
$cpu_info = explode(",",trim(@$sys_info[4],'%Cpu(s):')); //CPU占有量 数组
//CPU占有量
$cpu_us = trim(trim($cpu_info[0],'us')) ?? 0;
$cpu_sy = trim(trim($cpu_info[1],'sy')) ?? 0;
$cpu_id = trim(trim($cpu_info[3],'id')) ?? 0;
//内存
$mem_info = explode(",",trim(@$sys_info[5],'KiB Mem :')); //内存占有量 数组
//内存占有量
$mem_total = trim(trim($mem_info[0],'total')) ?? 0;
$mem_free = trim(@$mem_info[1],'free') ?? 0;
$mem_used = trim(@$mem_info[2],'used') ?? 0;
$mem_buff = trim(@$mem_info[3],'buff/cache') ?? 0;
/*硬盘使用率 begin*/
//文件系统中可用空间的总大小
//已用空间量
//可用空间量
//已用空间量,表示为总容量的百分比
$fp = popen('df -lh | grep -E "^(/)"',"r");
$rs = fread($fp,1024);
pclose($fp);
Log::info("access_token :".$rs);
// $rs = preg_replace("/\s{2,}/",' ',$rs); //把多个空格换成 “_”
$hd = explode(" ",trim(trim(trim($rs,'/dev/vda1'),'/')));
$hd = array_merge(array_unique($hd),[]);
Log::info("access_token :".json_encode($hd));
$hd_total = trim($hd[0]); //总大小 单位G
$hd_use = trim($hd[2]); //已用 单位G
$hd_avail = trim($hd[3]); //可用 单位G
$hd_rate = trim($hd[4]); // 百分比
/*硬盘使用率 end*/
/*网络使用率*/
// if (false === ($prevVal = @file("/proc/net/dev"))) {
// return false;
// }
// $result = file_get_contents("/proc/net/dev");
//
// preg_match("/lo:\s+\d+\s+\d+/", $result, $preg_str);
// $preg_str = str_replace("lo:",'',$preg_str);
// $preg_arr=explode(' ',$preg_str[0]);
// //var_dump($preg_arr,$result);die;
// $bytes = $preg_arr[1];
// $packets = $preg_arr[2];
// $net_usage = round($packets*100/$bytes,2);
$all=[
'task_total'=>$task_total,
'task_running'=>$task_running,
'cpu_us'=>$cpu_us,
'cpu_sy'=>$cpu_sy,
'cpu_id'=>$cpu_id,
'mem_total'=>round((int)$mem_total/(1024*1024),2).'G',
'mem_free'=>round((int)$mem_free/(1024*1024),2).'G',
'mem_used'=>round((int)$mem_used/(1024*1024),2).'G',
'mem_buff'=>round((int)$mem_buff/(1024*1024),2).'G',
'hd_total'=>$hd_total,
'hd_use'=>$hd_use,
'hd_avail'=>$hd_avail,
'hd_rate'=>$hd_rate,
// 'net_rate'=>$net_usage
];
return $all;
}
信息包括:CPU、内存、硬盘