分享一段php获取linux服务器状态的代码


Posted in PHP onMay 27, 2014

简单的php获取linux服务器状态的代码,不多说-直接上函数:

function get_used_status(){
  $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],'%'); //挂载点 百分比
  //print_r($hd);
  /*硬盘使用率 end*/  
  //检测时间
  $fp = popen("date +\"%Y-%m-%d %H:%M\"","r");
  $rs = fread($fp,1024);
  pclose($fp);
  $detection_time = trim($rs);
  /*获取IP地址  begin*/
  /*
  $fp = popen('ifconfig eth0 | grep -E "(inet addr)"','r');
  $rs = fread($fp,1024);
  pclose($fp);
  $rs = preg_replace("/\s{2,}/",' ',trim($rs));  //把多个空格换成 “_”
  $rs = explode(" ",$rs);
  $ip = trim($rs[1],'addr:');
  */
  /*获取IP地址 end*/
  /*
  $file_name = "/tmp/data.txt"; // 绝对路径: homedata.dat 
  $file_pointer = fopen($file_name, "a+"); // "w"是一种模式,详见后面
  fwrite($file_pointer,$ip); // 先把文件剪切为0字节大小, 然后写入
  fclose($file_pointer); // 结束
  */
  return  array('cpu_usage'=>$cpu_usage,'mem_usage'=>$mem_usage,'hd_avail'=>$hd_avail,'hd_usage'=>$hd_usage,'tast_running'=>$tast_running,'detection_time'=>$detection_time);
 }
PHP 相关文章推荐
PHP中使用glob函数实现一句话删除某个目录下的所有文件
Jul 22 PHP
PHP将回调函数作用到给定数组单元的方法
Aug 19 PHP
在win7中搭建Linux+PHP 开发环境
Oct 08 PHP
php一维二维数组键排序方法实例总结
Nov 13 PHP
PHP遍历数组的方法汇总
Apr 30 PHP
通过Email发送PHP错误的方法
Jul 20 PHP
PHP编程中尝试程序并发的几种方式总结
Mar 21 PHP
php模拟post上传图片实现代码
Jun 24 PHP
yii2控制器Controller Ajax操作示例
Jul 23 PHP
PHP实现基于图的深度优先遍历输出1,2,3...n的全排列功能
Nov 10 PHP
PHP从零开始打造自己的MVC框架之路由类实现方法分析
Jun 03 PHP
PHP8.0新功能之Match表达式的使用
Jul 19 PHP
教你如何快捷的使用cmd访问mysql小技巧
May 26 #PHP
将二维数组转为一维数组的2种方法
May 26 #PHP
windwos下使用php连接oracle数据库的过程分享
May 26 #PHP
查找php配置文件php.ini所在路径的二种方法
May 26 #PHP
php5.2以下版本无json_decode函数的解决方法
May 25 #PHP
模板引擎smarty工作原理以及使用示例
May 25 #PHP
浅析php中json_encode()和json_decode()
May 25 #PHP
You might like
德生PL660的电路分析和打磨
2021/03/02 无线电
一键删除顽固的空文件夹 软件下载
2007/01/26 PHP
PHP之COOKIE支持详解
2010/09/20 PHP
PHP应用JSON技巧讲解
2013/02/03 PHP
解析PHP留言本模块主要功能的函数说明(代码可实现)
2013/06/25 PHP
浅析php适配器模式(Adapter)
2014/11/25 PHP
常用的javascript function代码
2008/05/23 Javascript
利用JS重写Cognos右键菜单的实现代码
2010/04/11 Javascript
jQuery 获取对象 基本选择与层级
2010/05/31 Javascript
jquery利用event.which方法获取键盘输入值的代码
2011/10/09 Javascript
js实现动态添加、删除行、onkeyup表格求和示例
2013/08/18 Javascript
Jquery的基本对象转换和文档加载用法实例
2015/02/25 Javascript
js闭包实现按秒计数
2015/04/23 Javascript
轻松学习jQuery插件EasyUI EasyUI创建RSS Feed阅读器
2015/11/30 Javascript
用js读写cookie的简单方法(推荐)
2016/08/08 Javascript
nodejs微信公众号支付开发
2016/09/19 NodeJs
JS简单实现获取元素的封装操作示例
2017/04/07 Javascript
angular 基于ng-messages的表单验证实例
2017/05/04 Javascript
深入理解Webpack 中路径的配置
2017/06/17 Javascript
React如何将组件渲染到指定DOM节点详解
2017/09/08 Javascript
vue router自动判断左右翻页转场动画效果
2017/10/10 Javascript
vue注册组件的几种方式总结
2018/03/08 Javascript
JavaScript闭包与作用域链实例分析
2019/01/21 Javascript
如何实现小程序tab栏下划线动画效果
2019/05/18 Javascript
微信小程序使用npm包的方法步骤
2019/08/13 Javascript
Python中函数的参数定义和可变参数用法实例分析
2015/06/04 Python
python3.7简单的爬虫实例详解
2019/07/08 Python
python的pygal模块绘制反正切函数图像方法
2019/07/16 Python
使用Python爬虫库requests发送请求、传递URL参数、定制headers
2020/01/25 Python
Django Serializer HiddenField隐藏字段实例
2020/03/31 Python
实习销售业务员自我鉴定
2013/09/21 职场文书
初中三年学生的学习自我评价
2013/11/13 职场文书
迟到检讨书5000字
2014/01/31 职场文书
酒店行政人事部经理职务说明书
2014/02/26 职场文书
减负增效提质方案
2014/05/23 职场文书
Apache Hudi的多版本清理服务彻底讲解
2022/03/31 Servers