分享一段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做的端口嗅探器--可以指定网站和端口
Oct 09 PHP
php 传值赋值与引用赋值的区别
Dec 29 PHP
php数组的概述及分类与声明代码演示
Feb 26 PHP
深入php socket的讲解与实例分析
Jun 13 PHP
php递归方法实现无限分类实例代码
Feb 28 PHP
PHP正则表达式 /i, /is, /s, /isU等介绍
Oct 23 PHP
PHP内核探索:哈希表碰撞攻击原理
Jul 31 PHP
PHP中类的继承和用法实例分析
May 24 PHP
php下载文件超时时间的设置方法
Oct 06 PHP
thinkphp5.0自定义验证规则使用方法
Nov 16 PHP
PHP设计模式(四)原型模式Prototype实例详解【创建型】
May 02 PHP
如何在PHP中使用数组
Jun 09 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
php学习笔记 php中面向对象三大特性之一[封装性]的应用
2011/06/13 PHP
PHP漏洞全解(详细介绍)
2012/11/13 PHP
PHP 获取文件权限函数介绍
2013/07/11 PHP
服务器上配置PHP运行环境教程
2015/02/12 PHP
PHP链表操作简单示例
2016/10/15 PHP
PHP的RSA加密解密方法以及开发接口使用
2018/02/11 PHP
SUN的《AJAX与J2EE》全文译了
2007/02/23 Javascript
Jquery图片滚动与幻灯片的实例代码
2013/04/08 Javascript
jQuery基本过滤选择器使用介绍
2013/04/18 Javascript
Javascript事件实例详解
2013/11/06 Javascript
一个html5播放视频的video控件只支持android的默认格式mp4和3gp
2014/05/08 Javascript
jQuery中 delegate使用的问题
2015/07/03 Javascript
jQuery获取字符串中出现最多的数
2016/02/22 Javascript
javascript和jquery实现用户登录验证
2016/05/04 Javascript
基于javascript实现最简单的选项卡切换效果
2016/05/16 Javascript
jQuery中ScrollTo用法示例
2016/09/04 Javascript
js实现炫酷的左右轮播图
2017/01/18 Javascript
js图片上传的封装代码
2017/08/01 Javascript
Angular项目如何升级至Angular6步骤全纪录
2018/09/03 Javascript
node.js如何操作MySQL数据库
2020/10/29 Javascript
如何处理Python3.4 使用pymssql 乱码问题
2016/01/08 Python
利用python生成一个导出数据库的bat脚本文件的方法
2016/12/30 Python
利用python在excel里面直接使用sql函数的方法
2019/02/08 Python
Django中使用 Closure Table 储存无限分级数据
2019/06/06 Python
pytorch 使用单个GPU与多个GPU进行训练与测试的方法
2019/08/19 Python
python 命令行传入参数实现解析
2019/08/30 Python
python程序中的线程操作 concurrent模块使用详解
2019/09/23 Python
Python安装whl文件过程图解
2020/02/18 Python
ghd官网:英国ghd直发器品牌
2018/05/04 全球购物
如何将整数int转换成字串String
2014/03/21 面试题
北京泡泡网网络有限公司.net面试题
2012/07/17 面试题
产品销售员岗位职责
2013/12/18 职场文书
大学生的网络创业计划书
2013/12/26 职场文书
大学共青团员个人自我评价
2014/04/16 职场文书
幼儿教师小班个人总结
2015/02/05 职场文书
2015高三毕业寄语赠言
2015/02/27 职场文书