分享一段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 相关文章推荐
function.inc.php超越php
Dec 09 PHP
php 常用字符串函数总结
Mar 15 PHP
PHP 裁剪图片成固定大小代码方法
Sep 09 PHP
PHP中的MYSQL常用函数(php下操作数据库必备)
Sep 12 PHP
php更改目录及子目录下所有的文件后缀扩展名的代码
Oct 12 PHP
基于empty函数的输出详解
Jun 17 PHP
php后台如何避免用户直接进入方法实例
Oct 15 PHP
使用PHP curl模拟浏览器抓取网站信息
Oct 28 PHP
PHP安全的URL字符串base64编码和解码
Jun 19 PHP
跟我学Laravel之配置Laravel
Oct 15 PHP
php框架CI(codeigniter)自动加载与自主创建对象操作实例分析
Jun 06 PHP
PHP连接MySQL数据库操作代码实例解析
Jul 11 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 radio 单选框获取与保持值的实现代码
2010/05/15 PHP
php和editplus正则表达式去除空白行
2015/04/17 PHP
PHP+Mysql+jQuery文件下载次数统计实例讲解
2015/10/10 PHP
Yii配置与使用memcached缓存的方法
2016/07/13 PHP
thinkphp 手机号和用户名同时登录
2017/01/20 PHP
PHP共享内存使用与信号控制实例分析
2018/05/09 PHP
PHP自动载入类文件函数__autoload的使用方法
2019/03/25 PHP
jQuery帮助之筛选查找 children([expr])
2011/01/31 Javascript
定义JavaScript二维数组采用定义数组的数组来实现
2012/12/09 Javascript
jquery实现图片左右间隔滚动特效(可自动播放)
2013/05/08 Javascript
JQuery each打印JS对象的方法
2013/11/13 Javascript
解析JavaScript中的不可见数据类型
2013/12/02 Javascript
jquery easyui中treegrid用法的简单实例
2014/02/18 Javascript
网页广告中JS代码的信息监听示例
2014/04/02 Javascript
js Dialog 去掉右上角的X关闭功能
2014/04/23 Javascript
使用JQuery FancyBox插件实现图片展示特效
2015/11/16 Javascript
微信小程序 石头剪刀布实例代码
2017/01/04 Javascript
基于Vue实例生命周期(全面解析)
2017/08/16 Javascript
微信小程序实现添加手机联系人功能示例
2017/11/30 Javascript
微信小程序如何访问公众号文章
2019/07/08 Javascript
浅入深出Vue之组件使用
2019/07/11 Javascript
vue中@change兼容问题详解
2019/10/25 Javascript
vue学习笔记之过滤器的基本使用方法实例分析
2020/02/01 Javascript
Javascript原型链及instanceof原理详解
2020/05/25 Javascript
[05:26]2014DOTA2西雅图国际邀请赛 iG战队巡礼
2014/07/07 DOTA
[46:20]CHAOS vs Alliacne 2019国际邀请赛小组赛 BO2 第二场 8.15
2019/08/16 DOTA
[36:41]完美世界DOTA2联赛循环赛FTD vs Magma第一场 10月30日
2020/10/31 DOTA
python判断端口是否打开的实现代码
2013/02/10 Python
python中sets模块的用法实例
2014/09/30 Python
Python最火、R极具潜力 2017机器学习调查报告
2017/12/11 Python
python基于TCP实现的文件下载器功能案例
2019/12/10 Python
python无序链表删除重复项的方法
2020/01/17 Python
最新2019Pycharm安装教程 亲测
2020/02/28 Python
零基础学Python之前需要学c语言吗
2020/07/21 Python
乡镇网格化管理实施方案
2014/03/23 职场文书
详解MySQL集群搭建
2021/05/26 MySQL