分享一段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 操作调试的方法
Jul 12 PHP
IIS6.0中配置php服务全过程解析
Aug 07 PHP
ThinkPHP让分页保持搜索状态的方法
Jul 02 PHP
PHP实现支持GET,POST,Multipart/form-data的HTTP请求类
Sep 24 PHP
PHP操作MySQL事务实例
Nov 05 PHP
php数组键值用法实例分析
Feb 27 PHP
php检查页面是否被百度收录
Oct 28 PHP
在WordPress的后台中添加顶级菜单和子菜单的函数详解
Jan 11 PHP
PHP命名空间和自动加载类
Apr 03 PHP
PHP简单实现二维数组赋值与遍历功能示例
Oct 19 PHP
PHP常用函数之格式化时间操作示例
Oct 21 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/26 PHP
基于empty函数的输出详解
2013/06/17 PHP
linux实现php定时执行cron任务详解
2013/12/24 PHP
yii框架builder、update、delete使用方法
2014/04/30 PHP
php使用数组填充下拉列表框的方法
2015/03/31 PHP
php获取文章内容第一张图片的方法示例
2017/07/03 PHP
javascript form 验证函数 弹出对话框形式
2009/06/23 Javascript
js jquery数组介绍
2012/07/15 Javascript
用js实现输入提示(自动完成)的实例代码
2013/06/14 Javascript
js文件缓存之版本管理详解
2013/07/05 Javascript
页面图片浮动左右滑动效果的简单实现案例
2014/02/10 Javascript
jquery复选框checkbox实现删除前判断
2014/04/20 Javascript
JavaScript数值转换的三种方式总结
2014/07/31 Javascript
js css 实现遮罩层覆盖其他页面元素附图
2014/09/22 Javascript
jquery中append()与appendto()用法分析
2014/11/14 Javascript
Jquery ajax 同步阻塞引起的UI线程阻塞问题
2015/11/17 Javascript
基于Jquery代码实现支持PC端手机端幻灯片代码
2015/11/17 Javascript
jQuery实现简洁的导航菜单效果
2015/11/23 Javascript
微信小程序中form 表单提交和取值实例详解
2017/04/20 Javascript
jQuery初级教程之网站品牌列表效果
2017/08/02 jQuery
vue.js2.0 实现better-scroll的滚动效果实例详解
2018/08/13 Javascript
Vue模拟数据,实现路由进入商品详情页面的示例
2018/08/31 Javascript
jQuery简单实现根据日期计算星期几的方法
2019/01/09 jQuery
Vue+Element-UI实现上传图片并压缩
2019/11/26 Javascript
在Python中使用SimpleParse模块进行解析的教程
2015/04/11 Python
Python 读取指定文件夹下的所有图像方法
2018/04/27 Python
Python发送邮件的实例代码讲解
2019/10/16 Python
如何解决django-celery启动后迅速关闭
2019/10/16 Python
python+adb+monkey实现Rom稳定性测试详解
2020/04/23 Python
解决Keras自带数据集与预训练model下载太慢问题
2020/06/12 Python
百思买加拿大:Best Buy Canada
2018/03/20 全球购物
一份婚庆公司创业计划书
2014/01/11 职场文书
革命英雄事迹演讲稿
2014/09/13 职场文书
关爱空巢老人感想
2015/08/11 职场文书
Python 用户输入和while循环的操作
2021/05/23 Python
Windows server 2022创建创建林、域树、子域的步骤
2022/06/25 Servers