分享一段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 存储文本换行实现方法
Jan 05 PHP
开启CURL扩展,让服务器支持PHP curl函数(远程采集)
Mar 19 PHP
php Xdebug的安装与使用详解
Jun 20 PHP
php 模拟post_验证页面的返回状态(实例讲解)
Oct 28 PHP
phpmyadmin出现Cannot start session without errors问题解决方法
Aug 14 PHP
php强制用户转向www域名的方法
Jun 19 PHP
Yii2简单实现多语言配置的方法
Jul 23 PHP
PHP载入图像imagecreatefrom_gif_jpeg_png系列函数用法分析
Nov 14 PHP
PHP如何实现订单的延时处理详解
Dec 30 PHP
thinkPHP实现基于ajax的评论回复功能
Jun 22 PHP
PHP与以太坊交互详解
Aug 24 PHP
ThinkPHP中获取指定日期后工作日的具体日期方法
Oct 14 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实现比较全的数据库操作类
2015/06/18 PHP
php如何实现只替换一次或N次
2015/10/29 PHP
PHP操作MySQL的mysql_fetch_* 函数的常见用法教程
2015/12/25 PHP
Symfony2联合查询实现方法
2016/03/18 PHP
PHP实现bitmap位图排序与求交集的方法
2016/07/28 PHP
yii2简单使用less代替css示例
2017/03/10 PHP
动态创建样式表在各浏览器中的差异测试代码
2011/09/13 Javascript
JS与C#编码解码
2013/12/03 Javascript
js库Modernizr的介绍和使用
2015/05/07 Javascript
javascript基于DOM实现省市级联下拉框的方法
2015/05/14 Javascript
JAVASCRIPT代码编写俄罗斯方块网页版
2015/11/26 Javascript
Jquery左右滑动插件之实现超级炫酷动画效果附源码下载
2015/12/02 Javascript
jQuery绑定自定义事件的魔法升级版
2016/06/30 Javascript
Jquery表单验证失败后不提交的解决方法
2016/10/18 Javascript
详解node-ccap模块生成captcha验证码
2017/07/01 Javascript
JS如何设置元素样式的方法示例
2017/08/28 Javascript
小程序实现五星点评效果
2018/11/03 Javascript
vue+element项目中过滤输入框特殊字符小结
2019/08/07 Javascript
angular异步验证防抖踩坑实录
2019/12/01 Javascript
element中table高度自适应的实现
2020/10/21 Javascript
vue项目打包后请求地址错误/打包后跨域操作
2020/11/04 Javascript
[01:53]3.19 DOTA2发布会 现场精彩Coser表演
2014/03/25 DOTA
[00:23]魔方之谜解锁款式
2018/12/20 DOTA
Python调用C/C++动态链接库的方法详解
2014/07/22 Python
浅谈python中截取字符函数strip,lstrip,rstrip
2015/07/17 Python
老生常谈进程线程协程那些事儿
2017/07/24 Python
Eastbay官网:美国最大的运动鞋网络零售商
2016/07/27 全球购物
AMAVII眼镜官网:时尚和设计师太阳镜
2019/05/05 全球购物
人事部经理岗位职责
2014/03/07 职场文书
主管会计岗位职责
2014/03/13 职场文书
心理咨询承诺书
2014/05/20 职场文书
小学教师读书活动总结
2014/07/08 职场文书
社保委托书怎么写
2014/08/02 职场文书
2014年教研室工作总结
2014/12/06 职场文书
初中班长竞选稿
2015/11/20 职场文书
SQL SERVER触发器详解
2022/02/24 SQL Server