*【封装php函数】获取linux服务器centos硬件的一些信息,获取cpu、内存、硬盘、网络带宽的使用率和单位转换

本文提供了一组PHP函数,用于获取Linux CentOS服务器的硬件信息,包括CPU使用率、内存使用率、硬盘使用率和网络带宽使用率。同时,还涉及到了单位转换,确保数据的准确呈现。请注意,这些函数需在服务器环境中运行才能获取到实际数据。
摘要由CSDN通过智能技术生成

 

注意:以下代码都是放在服务器上访问,才会有结果的

 

 

/**
 * 获取CPU使用率
 */
function getCPURate($speed = 0.5)
{
    if (false === ($prevVal = @file("/proc/stat"))) {   //把整个文件读入到数组中
        return false;
    }

    $prevVal = implode($prevVal, PHP_EOL);
    $prevArr = explode(' ', trim($prevVal));
    $prevTotal = $prevArr[2] + $prevArr[3] + $prevArr[4] + $prevArr[5];
    $prevIdle = $prevArr[5];
    usleep($speed * 1000000);
    $val = @file("/proc/stat");
    $val = implode($val, PHP_EOL);
    $arr = explode(' ', trim($val));
    $total = $arr[2] + $arr[3] + $arr[4] + $arr[5];
    $idle = $arr[5];
    $intervalTotal = intval($total - $prevTotal);
    return round(100 * (($intervalTotal - ($idle - $prevIdle)) / $intervalTotal), 2);
}

 

 

/**
 * 获取全部速度
 * @return array|bool
 */
function getAllRate(){
    //打开进程文件指针。打开一个指向进程的管道,该进程由派生给定的 command 命令执行而产生
    $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 = trim(trim($mem_info[0],'Mem: '),'k total');
    $mem_used = trim($mem_info[1],'k used');
    $mem_usage = round(100*intval($mem_used)/intval($mem_total),2);  //百分比

    /*硬盘使用率 begin*/
    $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],'%'
  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值