获取服务器状态记录使用的是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. Windows下 bat调用TSql问题

    一.建立sql文件 在sql管理工具中写好sql文件,并保证能够正常运行,之后用unique编码保存. 二.建立一个bat文件osql -U登录用户 -P密码 -S服务器 <sql文件.sql ...

  2. android 开发-数据存储之文件存储

    android的文件存储是通过android的文件系统对数据进行临时的保存操作,并不是持久化数据,例如网络上下载某些图片.音频.视频文件等.如缓存文件将会在清理应用缓存的时候被清除,或者是应用卸载的时 ...

  3. Get和Post的请求

    get post请求 <form method="post","get", action="a.ashx"> <input ...

  4. return false;和e.preventDefault;和e.stopPropagation的区别

    因为有父, 子节点同在, 因为有监听事件和浏览器默认动作之分. 使用 JavaScript 时为了达到预期效果经常需要阻止事件和动作执行. 一般我们会用到三种方法, 分别是 stopPropagati ...

  5. nginx停止后再启动出现: [error] open() "/usr/local/nginx/logs/nginx.pid" failed错误的解决方法

    为了备份数据 手动停止了服务器的nginx 结果启动时报错 nginx: [error] open() "/usr/local/nginx/logs/nginx.pid" fail ...

  6. [转]Git之忽略文件(ignore file)

    原文链接:http://blog.csdn.net/benkaoya/article/details/7932370 .gitignore 配置文件用于配置不需要加入版本管理的文件,配置好该文件可以为 ...

  7. notepad++ 等用正则表达式自动添加sql引号(宏)

    一般sql语句会经常用到给括号里的内容添加引号,sql如下 Select * From Test ', ', ', ', ', '); 一开始参考了http://blog.sina.com.cn/s/ ...

  8. 微软AI发布会,集齐六大亮点召唤黑科技!

    7月12日,微软合作伙伴大会Inspire在华盛顿特区如火如荼地举行.同一天,在相隔5个时区的伦敦,微软还举办了一场关于人工智能的发布会.这是一场智能技术和情感体验两相交融的科技盛宴,既有黑科技,也有 ...

  9. Spring Boot : Swagger 2

    每次修改完代码需要找原本的API时楼主的内心是痛苦的,因为一般情况下都找不到,需要重新写一份.如果使用Swagger的话,只要加几个注解就可以实时生成最新的在线API文档,而且不仅仅是文档,同时支持A ...

  10. 使用CreateProcess函数运行其他程序

    为了便于控制通过脚本运行的程序,可以使用win32process模块中的CreateProcess()函数创建一个运行相应程序的进程.其函数原型如下.CreateProcess(appName, co ...