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

贴出获取方式以及常用处理方式

<?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");
/*说明: 获取两次信息,因为只获取一次数据不准确,但是造成返回缓慢,建议做成异步处理
处理方式
$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 = 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], '%'); //挂载点 百分比
//获取MAC地址
$fp = popen('lshw -c network | grep serial | head -n 1', "r");
$rs = fread($fp, 1024);
pclose($fp);
$mac = explode(':', $rs);
array_shift($mac);
$macAddr = implode(':', $mac); //XX:XX:XX:XX:XX
//获取内网IP地址
$fp = popen('ip addr | grep inet | grep -v inet6', "r"); /**
结果展示: 自己处理
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
**/

Linux 下PHP获取服务器状态CPU、MEM使用率、磁盘使用率、IP地址获取、MAC地址获取等信息记录的更多相关文章

  1. 在Linux下,在网络没有配置好前,怎样查看网卡的MAC地址?

    在Linux下,在网络没有配置好前,怎样查看网卡的MAC地址? 使用 dmesg 与 grep 命令来实际,例如以下: [root@localhost ~]# dmesg | grep eth e10 ...

  2. Linux下查看Web服务器当前的并发连接数和TCP连接状态

    对于web服务器(Nginx.Apache等)来说,并发连接数是一个比较重要的参数,下面就通过netstat命令和awk来查看web服务器的并发连接数以及TCP连接状态. $ netstat -n | ...

  3. linux下如何查看服务器的硬件配置信息

    性能测试时一定要确定测试环境和的硬件配置.软件版本配置,保证和线上一致,才更接近真实环境. 那么linux下如何查看服务器的硬件配置信息?? 一.查看cpu信息 1.所有信息 lscpu [root@ ...

  4. Linux下视频流媒体直播服务器搭建详解

    目标: 搭建网络直播流媒体服务器系统(Linux操作系统) 背景: 用于OTT-TV大并发的直播和点播的一套流媒体服务器系统.支持N x 24小时录制回看和直播的服务器端解决方案. 解决方案: l  ...

  5. Linux下安装Tomcat服务器

    Linux下安装Tomcat服务器 一.总结 一句话总结: linux多用才能熟 1.阿里云上面我们买的服务器,怎么让它可以访问特定的端口? 就是给服务器的安全组添加规则:实例-->更多--&g ...

  6. ​Linux下的SVN服务器搭建

    ​Linux下的SVN服务器搭建 鉴于在搭建时,参考网上很多资料,网上资料在有用的同时,也坑了很多人 本文的目的,也就是想让后继之人在搭建svn服务器时不再犯错,不再被网上漫天的坑爹作品所坑害,故此总 ...

  7. Linux下安装Tomcat服务器和部署Web应用

    一.上传Tomcat服务器

  8. Linux下部署FTP服务器

    Linux下部署FTP服务器 下载安装包 在这里介绍的是离线部署FTP,首先下载对应的rpm包,下载链接为: 下载vsftpd服务 下载FTP客户端 安装ftp服务器 关闭防火墙 service ip ...

  9. Linux下配置Tomcat服务器

    Linux下配置Tomcat服务器和Windows下其实差不多,可以去官网下载安装包释放或者在线下载,只是当时下载的windows.zip文件,现在下载.tar.gz格式的即可,下面使用命令行的方式安 ...

随机推荐

  1. Gym - 100221D 一题一直没过的dfs,,应该是纯手动码?

    不写了,10年以后再回来写. http://codeforces.com/gym/100221/attachments H题

  2. Hadoop文件压缩

    1. Hadoop的文件压缩需求 文件压缩对于大容量的分布式存储系统而言是必须的,它能带来两个好处: 1)减少了文件所需的存储空间: 2)加快了文件在网络上或磁盘间的传输速度. 2. Hadoop支持 ...

  3. 分享一个WPF下日历控件(Calendar)的样式

    WPF日历控件的一个样式 WPF自带的日历控件样式可能会比较丑,要修改其样式看起来挺复杂的,实际上很简单,用Blend打开,修改三个模板,基本就能改变全部面貌,也很容易 先上图 样式如下: <S ...

  4. synchronized锁——8锁

    前言 多线程是Java面试中最喜欢问的问题之一,有一篇公众号推文内容很详细,推荐看看 但凡面试官考“多线程”,一定会问这10个问题! 本文中仅对synchronized关键字的加锁进行一定分析 一.标 ...

  5. Spring Cloud 服务发现和消费

    服务的发现和消费 有了服务中心和服务提供者,下面我们来实现一个服务的消费者: 服务消费者主要完成两个任务——服务的发现和服务的消费,服务发现的任务是由Eureka客户端完成,而服务消费的任务是由Rib ...

  6. Spring cloud Eureka 服务治理(高可用服务中心)

    在微服务的架构中,我们考虑发生故障的情况,所以在生产环境中我们需要对服务中各个组件进行高可用部署. Eureka Server 的高可用实际上就是将自己作为服务想其它服务注册中心注册自己,这样就形成了 ...

  7. 用简单的方法学习ES6

    ES6 简要概览 这里是ES6 简要概览.本文大量参考了ES6特性代码仓库,请允许我感谢其作者@Luke Hoban的卓越贡献,也感谢@Axel Rauschmayer所作的[优秀书籍]//explo ...

  8. iOS多线程系统整理 swift

    多线程   是一个应用程序内多个代码的执行路径,执行线程,同时在同一时间里执行不同的任务. 三种: 1.NSTread 2.Cocoa NSOperation (NSOperation,NSOpera ...

  9. koa源码分析

    最近项目要使用koa,所以提前学习一下,顺便看了koa框架的源码. 注:源码是koa2.x koa的源码很简洁,关键代码只有4个文件,当然还包括一些依赖npm包 const Koa = require ...

  10. Eucalyptus管理页面密码设置

    桉树环境什么的都已经是配置好了的,但是过了一段时间不用,也不知道密码是什么了,看着下面的页面也不知道如何进去,这里我们通过命令行的方式重置用户名和密码信息. 登陆clc所在机器,输入下命令: euar ...