分享一段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语法(1)
Oct 09 PHP
php URL编码解码函数代码
Mar 10 PHP
php adodb操作mysql数据库
Mar 19 PHP
AMFPHP php远程调用(RPC, Remote Procedure Call)工具 快速入门教程
May 10 PHP
PHP遍历数组的三种方法及效率对比分析
Feb 12 PHP
Zend Framework动作助手Json用法实例分析
Mar 05 PHP
php版微信公众平台开发之验证步骤实例详解
Sep 23 PHP
php中引用符号(&)的使用详细介绍
Dec 06 PHP
Thinkphp整合微信支付功能
Dec 14 PHP
PHP实现二维数组去重功能示例
Jan 12 PHP
php实现留言板功能(代码详解)
Mar 28 PHP
CI框架(CodeIgniter)实现的数据库增删改查操作总结
May 23 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
apache php模块整合操作指南
2012/11/16 PHP
PHP的魔术常量__METHOD__简介
2014/07/08 PHP
CodeIgniter中使用cookie的三种方式详解
2014/07/18 PHP
PHP微信开发之查询微信精选文章
2016/06/23 PHP
PHP静态成员变量
2017/02/14 PHP
EXT窗口Window及对话框MessageBox
2011/01/27 Javascript
用Javascript评估用户输入密码的强度实现代码
2011/11/30 Javascript
Javascript 异步加载详解(浏览器在javascript的加载方式)
2012/05/20 Javascript
利用div+jquery自定义滚动条样式的2种方法
2013/07/18 Javascript
javascript正则表达式参数/g与/i及/gi的使用指南
2014/08/27 Javascript
使用jQuery制作浮动工具栏的实例分享
2016/05/13 Javascript
Javascript中prototype的使用详解
2016/06/18 Javascript
简单的Vue异步组件实例Demo
2017/12/27 Javascript
JS简单实现动态添加HTML标记的方法示例
2018/04/08 Javascript
Js 利用正则表达式和replace函数获取string中所有被匹配到的文本(推荐)
2018/10/28 Javascript
Vue自定义全局弹窗组件操作
2020/08/11 Javascript
[01:05:29]DOTA2-DPC中国联赛 正赛 PSG.LGD vs Aster BO3 第二场 1月24日
2021/03/11 DOTA
python实现决策树C4.5算法详解(在ID3基础上改进)
2017/05/31 Python
pytorch实现线性拟合方式
2020/01/15 Python
在tensorflow中实现屏蔽输出的log信息
2020/02/04 Python
python读取当前目录下的CSV文件数据
2020/03/11 Python
Python绘制组合图的示例
2020/09/18 Python
详解Python3.8+PyQt5+pyqt5-tools+Pycharm配置详细教程
2020/11/02 Python
OSPF有什么优点?为什么OSPF比RIP收敛快?
2013/02/13 面试题
乡镇庆八一活动方案
2014/02/02 职场文书
医药营销个人求职信范文
2014/02/07 职场文书
优秀应届毕业生推荐信
2014/02/18 职场文书
代领学位证书毕业证书委托书
2014/09/30 职场文书
儿园租房协议书范本
2014/12/02 职场文书
2014个人年度工作总结范文
2014/12/24 职场文书
公司副总经理岗位职责
2015/04/08 职场文书
小学教师教育随笔
2015/08/14 职场文书
如何撰写促销方案?
2019/07/05 职场文书
Java Socket实现Redis客户端的详细说明
2021/05/26 Redis
详解JAVA中的OPTIONAL
2021/06/14 Java/Android
SQL模糊查询报:ORA-00909:参数个数无效问题的解决
2021/06/21 Oracle