分享一段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 采集程序中常用的函数
Dec 09 PHP
php curl模拟post提交数据示例
Dec 31 PHP
PHP错误Cannot use object of type stdClass as array in错误的解决办法
Jun 12 PHP
PHP中模拟处理HTTP PUT请求的例子
Jul 22 PHP
php实现parent调用父类的构造方法与被覆写的方法
Feb 11 PHP
PHP的Yii框架中创建视图和渲染视图的方法详解
Mar 29 PHP
Laravel使用memcached缓存对文章增删改查进行优化的方法
Oct 08 PHP
PHP面向对象五大原则之里氏替换原则(LSP)详解
Apr 08 PHP
php获取用户真实IP和防刷机制的实例代码
Nov 28 PHP
PHP+Redis开发的书签案例实战详解
Jul 09 PHP
在laravel-admin中列表中禁止某行编辑、删除的方法
Oct 03 PHP
为你的 Laravel 验证器加上多验证场景的实现
Apr 07 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的安全策略
2006/10/09 PHP
php获取远程图片的两种 CURL方式和sockets方式获取远程图片
2011/11/07 PHP
php文件夹与文件目录操作函数介绍
2013/09/09 PHP
Thinkphp框架中D方法与M方法的区别
2016/12/23 PHP
10个新的最有前途的JavaScript框架
2009/03/12 Javascript
Extjs学习笔记之七 布局
2010/01/08 Javascript
web开发人员学习jQuery的6大理由及jQuery的优势介绍
2013/01/03 Javascript
Jquery中的层次选择器与find()的区别示例介绍
2014/02/20 Javascript
css结合js制作下拉菜单示例代码
2014/02/27 Javascript
jquery easyui 对于开始时间小于结束时间的判断示例
2014/03/22 Javascript
JavaScript中的值类型转换介绍
2014/12/31 Javascript
jQuery实现复选框成对选择及对应取消的方法
2015/03/03 Javascript
简介JavaScript中valueOf()方法的使用
2015/06/05 Javascript
JS实现单击输入框弹出选择框效果完整实例
2015/12/14 Javascript
javascript实现粘贴qq截图功能(clipboardData)
2016/05/29 Javascript
使用jQuery的toggle()方法对HTML标签进行显示、隐藏的方法(示例)
2016/09/01 Javascript
jquery dataTable 后台加载数据并分页实例代码
2017/06/07 jQuery
JS设置手机验证码60s等待实现代码
2017/06/14 Javascript
node.js实现的装饰者模式示例
2017/09/06 Javascript
JavaScript事件发布/订阅模式原理与用法分析
2018/08/21 Javascript
使用JavaScript实现贪吃蛇游戏
2020/09/29 Javascript
Python中元组,列表,字典的区别
2017/05/21 Python
python和flask中返回JSON数据的方法
2018/03/26 Python
基于python指定包的安装路径方法
2018/10/27 Python
关于Python中的向量相加和numpy中的向量相加效率对比
2019/08/26 Python
用OpenCV将视频分解成单帧图片,图片合成视频示例
2019/12/10 Python
python GUI库图形界面开发之PyQt5工具栏控件QToolBar的详细使用方法与实例
2020/02/28 Python
Pandas DataFrame求差集的示例代码
2020/12/13 Python
南非领先的在线旅行社:Travelstart南非
2016/09/04 全球购物
优秀护士获奖感言
2014/02/20 职场文书
2014年协会工作总结
2014/11/22 职场文书
学校2014年度工作总结
2014/12/06 职场文书
2015年求职自荐信范文
2015/03/04 职场文书
学雷锋活动简报
2015/07/20 职场文书
个人销售励志奋斗口号
2019/12/05 职场文书
Golang Elasticsearches 批量修改查询及发送MQ
2022/04/19 Golang