php硬件信息,php获取linux服务器 系统信息(硬件) Ubuntu版

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、内存、硬盘

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值