分享一段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 相关文章推荐
一个更简单的无限级分类菜单代码
Jan 16 PHP
深入分析php之面向对象
May 15 PHP
php中spl_autoload详解
Oct 17 PHP
使用symfony命令创建项目的方法
Mar 17 PHP
yii的入口文件index.php中为什么会有这两句
Aug 04 PHP
php arsort 数组降序排序详细介绍
Nov 17 PHP
PHP中list方法用法示例
Dec 01 PHP
laravel项目利用twemproxy部署redis集群的完整步骤
May 11 PHP
php+croppic.js实现剪切上传图片功能
Aug 14 PHP
Laravel5.4框架使用socialite实现github登录的方法
Mar 20 PHP
Laravel框架集成UEditor编辑器的方法图文与实例详解
Apr 17 PHP
分享8个Laravel模型时间戳使用技巧小结
Feb 12 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 向访客和爬虫显示不同的内容
2009/11/09 PHP
《PHP编程最快明白》第四讲:日期、表单接收、session、cookie
2010/11/01 PHP
PHP小技巧之JS和CSS优化工具Minify的使用方法
2014/05/19 PHP
php禁止直接从浏览器输入地址访问.php文件的方法
2014/11/04 PHP
php将html转成wml的WAP标记语言实例
2015/07/08 PHP
TP5框架请求响应参数实例分析
2019/10/17 PHP
JavaScript 计算当天是本年本月的第几周
2009/03/22 Javascript
javascript JSON操作入门实例
2010/04/16 Javascript
JavaScript数字和字符串转换示例
2014/03/26 Javascript
JavaScript中String.match()方法的使用详解
2015/06/06 Javascript
js实现TAB切换对应不同颜色的代码
2015/08/31 Javascript
基于jQuery实现多层次的手风琴效果附源码
2015/09/21 Javascript
JavaScript数据类型转换的注意事项
2016/07/31 Javascript
Vue.js原理分析之observer模块详解
2017/02/17 Javascript
详解JS中的attribute属性
2017/04/25 Javascript
vue监听scroll的坑的解决方法
2017/09/07 Javascript
nodejs读取并去重excel文件
2018/04/22 NodeJs
微信小程序中上传图片并进行压缩的实现代码
2018/08/28 Javascript
ng-events类似ionic中Events的angular全局事件
2018/09/05 Javascript
Three.js实现简单3D房间布局
2018/12/30 Javascript
JavaScript对象访问器Getter及Setter原理解析
2020/12/08 Javascript
python 文件和路径操作函数小结
2009/11/23 Python
详解python使用pip安装第三方库(工具包)速度慢、超时、失败的解决方案
2018/12/02 Python
Python玩转PDF的各种骚操作
2019/05/06 Python
分享CSS3制作卡片式图片的方法
2016/07/08 HTML / CSS
鱼油专家:Omegavia
2016/10/10 全球购物
SmartBuyGlasses英国:购买太阳镜和眼镜
2018/01/29 全球购物
英国最大的婴儿监视器网上商店:Baby Monitors Direct
2018/04/24 全球购物
外贸英语毕业生自荐信
2013/11/14 职场文书
中学自我评价
2014/01/31 职场文书
教师节商场活动方案
2014/02/13 职场文书
三好学生个人先进事迹材料
2014/05/17 职场文书
小学四年级作文之最感动的一件事
2019/11/01 职场文书
python爬虫之利用selenium模块自动登录CSDN
2021/04/22 Python
golang 实现并发求和
2021/05/08 Golang
JavaScript原始值与包装对象的详细介绍
2021/05/11 Javascript