php获取服务器状态 执行shell

介绍

获取服务器状态记录使用的是SHELL命令方式进行获取输出结果 然后进行字符串拆分处理等方式进行获取到自己有用信息
获取方式以及常用处理方式
popen、exec

通用方式

<?PHP
    $fp = popen('执行SHELL命令', "r");
    $rs = '';
    while(!feof($fp)){
       $rs .= fread($fp, 1024);  
    }
    pclose($fp);
    //获取到输出结果 rs   
    //根据自己需要的信息不同进行处理  组合处理
    $info = explode("\n", $rs); //处理方式1  换行拆分
    $info2 = explode(",", $info[0]); //处理方式2 逗号拆分
    $info3 = trim($info2[0], '%Cpu(s)'); // 处理方式3  去掉左右字符串
    $info4 = preg_replace('/\s{2,}/', $rs); //处理方式4 字符串替换

获取CPU使用率以及内存使用率

$fp = popen('top -b -n 2 | grep -E "(Cpu\(s\))|(KiB Mem)"', "r");

$rs = '';
while(!feof($fp)){
   $rs .= fread($fp, 1024);  
}
pclose($fp);
var_dump($rs);

/*说明: 获取两次信息,因为只获取一次数据不准确,但是造成返回缓慢,建议做成异步处理
处理方式
    $sys_info = explode("\n", $rs);
    $cpu_info = explode(",", $sys_info[2]);
    $cpu_usage = trim(trim($cpu_info[0], '%Cpu(s): '), 'us'); //百分比

    $mem_info = explode(",", $sys_info[3]); //内存占有量 数组
    $mem_total = trim(trim($mem_info[0], 'KiB Mem : '), ' total');
    $mem_used = trim(trim($mem_info[2], 'used'));
    $mem_usage = round(100 * intval($mem_used) /     intval($mem_total), 2); //百分比
*/

获取磁盘占用率

$fp = popen('df -lh | grep -E "^(/)"', "r");

$rs = '';
while(!feof($fp)){
   $rs .= fread($fp, 1024);  
}

//$rs = fread($fp, 1024);
pclose($fp);
var_dump($rs);

//$rs = preg_replace('/\s{2,}/', ' ', $rs);  //把多个空格换成 “_”
//$hd = explode(" ", $rs);
//$hd_avail = trim($hd[3], 'G'); //磁盘可用空间大小 单位G
//$hd_usage = trim($hd[4], '%'); //挂载点 百分比

获取内网IP地址

$fp = popen('ip addr | grep inet | grep -v inet6', "r");

$rs = '';
//while(!feof($fp)){
//   $rs .= fread($fp, 1024);  
//}
$rs = fread($fp, 1024);

pclose($fp);
var_dump($rs);


/**
    结果展示: 自己处理 
    inet 192.168.1.180/24 brd 192.168.1.255 scope global dynamic
    inet 172.20.175.225/28 brd 172.20.175.239 scope global dynamic
    inet 127.0.0.1/8 brd 127.255.255.255 scope global dynamic
**/
$ip_cmd = "ifconfig eth0 | sed -n '/inet addr/p' | awk '{print $2}' | awk -F ':' '{print $2}'";
$ret = trim(exec($ip_cmd));
var_dump($ret);

原文

Linux 下PHP获取服务器状态CPU、MEM使用率、磁盘使用率、IP地址获取、MAC地址获取等信息记录

linux php cli模式下获取服务器ip

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值