分享一段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中heredoc的使用方法
Jun 17 PHP
解析PHP可变函数的经典用法
Jun 20 PHP
PHP生成Gif图片验证码
Oct 27 PHP
php中3种方法删除字符串中间的空格
Mar 10 PHP
destoon调用企业会员公司形象图片的实现方法
Aug 21 PHP
PHP调用wsdl文件类型的接口代码分享
Nov 19 PHP
php计算给定时间之前的函数用法实例
Apr 03 PHP
php采用session实现防止页面重复刷新
Dec 24 PHP
Ubuntu server 11.04安装memcache及php使用memcache来存储session的方法
May 31 PHP
PHP中set_include_path()函数相关用法分析
Jul 18 PHP
PHP实现文件下载【实例分享】
Apr 28 PHP
php使用array_chunk函数将一个数组分割成多个数组
Dec 05 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测试程序运行时间的类
2012/02/05 PHP
基于MySQL分区性能的详细介绍
2013/05/02 PHP
php 常用算法和时间复杂度
2013/07/01 PHP
php实现mysql封装类示例
2014/05/07 PHP
PHP 使用memcached简单示例分享
2015/03/05 PHP
PHP 下载文件时如何自动添加bom头及解释BOM头和去掉bom头的方法
2016/01/04 PHP
学习YUI.Ext第七日-View&JSONView Part Two-一个画室网站的案例
2007/03/10 Javascript
JavaScript 在网页上单击鼠标的地方显示层及关闭层
2012/12/30 Javascript
jquery实现弹出层完美居中效果
2014/03/03 Javascript
常用jQuery选择器总结
2014/07/11 Javascript
再探JavaScript作用域
2014/09/24 Javascript
jsMind通过鼠标拖拽的方式调整节点位置
2015/04/13 Javascript
js日期插件dateHelp获取本月、三个月、今年的日期
2016/03/07 Javascript
jQuery中hover方法搭配css的hover选择器,实现选中元素突出显示方法
2017/05/08 jQuery
vue按需引入element Transfer 穿梭框
2017/09/30 Javascript
JS实现table表格固定表头且表头随横向滚动而滚动
2017/10/26 Javascript
初探js和简单隐藏效果的实例
2017/11/23 Javascript
基于vue.js中关于下拉框的值默认及绑定问题
2018/08/22 Javascript
微信小程序多音频播放进度条问题
2018/08/28 Javascript
vue单页面应用打开新窗口显示跳转页面的实例
2018/09/21 Javascript
在Bootstrap开发框架中使用dataTable直接录入表格行数据的方法
2018/10/25 Javascript
详解django中自定义标签和过滤器
2017/07/03 Python
JavaScript中的模拟事件和自定义事件实例分析
2018/07/27 Python
python中for循环输出列表索引与对应的值方法
2018/11/07 Python
python3.6+selenium实现操作Frame中的页面元素
2019/07/16 Python
python 的 scapy库,实现网卡收发包的例子
2019/07/23 Python
Python实现新型冠状病毒传播模型及预测代码实例
2020/02/05 Python
python要安装在哪个盘
2020/06/15 Python
Veronica Beard官网:在酷、经典和别致之间找到了平衡
2018/01/11 全球购物
瑞士最大的图书贸易公司:Orell Füssli
2019/12/28 全球购物
大学毕业自我鉴定范文
2014/02/03 职场文书
党员批评与自我批评
2014/02/12 职场文书
求职信结尾怎么写
2014/05/26 职场文书
小学领导班子对照材料
2014/08/23 职场文书
Nginx反向代理至go-fastdfs案例讲解
2021/08/02 Servers
Python pyecharts绘制条形图详解
2022/04/02 Python