分享一段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中取得URL的根域名的代码
Mar 23 PHP
PHP curl模拟浏览器采集阿里巴巴的实现代码
Apr 20 PHP
Yii Framework框架获取分类下面的所有子类方法
Jun 20 PHP
PHP速成大法
Jan 30 PHP
php查询whois信息的方法
Jun 08 PHP
php生成高清缩略图实例详解
Dec 07 PHP
PHP面向对象中new self()与 new static()的区别浅析
Aug 17 PHP
PHP守护进程化在C和PHP环境下的实现
Nov 21 PHP
PHP 布尔值的自增与自减的实现方法
May 03 PHP
php微信开发之关键词回复功能
Jun 13 PHP
PHP-FPM的配置与优化讲解
Mar 15 PHP
Laravel 手动开关 Eloquent 修改器的操作方法
Dec 30 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/03/10 PHP
一些php项目中比较通用的php自建函数的详解
2013/06/06 PHP
PHP验证码函数代码(简单实用)
2013/09/29 PHP
ThinkPHP应用模式扩展详解
2014/07/16 PHP
js removeChild 障眼法 可能出现的错误
2009/10/06 Javascript
javascript类型转换使用方法
2014/02/08 Javascript
javascript版2048小游戏
2015/03/18 Javascript
jQuery支持添加事件的日历特效代码分享(3种样式)
2015/08/24 Javascript
详解JavaScript基本类型和引用类型
2015/12/09 Javascript
js老生常谈之this,constructor ,prototype全面解析
2016/04/05 Javascript
AngularJS ng-style中使用filter
2016/09/21 Javascript
Map.vue基于百度地图组件重构笔记分享
2017/04/17 Javascript
Django使用多数据库的方法
2017/09/06 Javascript
如何安装控制器JavaScript生成插件详解
2018/10/21 Javascript
详解JS实现简单的时分秒倒计时代码
2019/04/25 Javascript
微信小程序tabBar 返回tabBar不刷新页面
2019/07/25 Javascript
JS基础之逻辑结构与循环操作示例
2020/01/19 Javascript
[01:15:18]2014 DOTA2国际邀请赛中国区预选赛 LGD VS Speed Gaming.cn
2014/05/22 DOTA
Python里隐藏的“禅”
2014/06/16 Python
浅析Python多线程下的变量问题
2015/04/28 Python
Python分支结构(switch)操作简介
2018/01/17 Python
解决python3 网络请求路径包含中文的问题
2018/05/10 Python
如何安装2019Pycharm最新版本(详细教程)
2019/09/26 Python
在OpenCV里使用特征匹配和单映射变换的代码详解
2019/10/23 Python
用Python实现校园通知更新提醒功能
2019/11/23 Python
python程序输出无内容的解决方式
2020/04/09 Python
python3.5的包存放的具体路径
2020/08/16 Python
HolidayLettings英国:预订最好的度假公寓、别墅和自助式住宿
2019/08/27 全球购物
Java中compareTo和compare的区别
2016/04/12 面试题
Linux如何为某个操作添加别名
2013/03/01 面试题
Java中采用什么结构来捕获、处理异常?各子句的顺序、功能如何
2013/10/07 面试题
材料物理专业大学毕业生求职信
2013/10/15 职场文书
中学生在校期间的自我评价分享
2013/11/13 职场文书
学习新党章思想汇报
2014/01/09 职场文书
家长通知书家长评语
2014/04/17 职场文书
各种货币符号快捷输入
2022/02/17 杂记