分享一段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也可以?成Shell Script
Oct 09 PHP
APACHE的AcceptPathInfo指令使用介绍
Jan 18 PHP
php中sprintf与printf函数用法区别解析
Feb 17 PHP
PHP安全的URL字符串base64编码和解码
Jun 19 PHP
PHP中读取文件的8种方法和代码实例
Aug 05 PHP
PHP实现无限极分类图文教程
Nov 25 PHP
PHP发送AT指令实例代码
May 26 PHP
php封装的mysqli类完整实例
Oct 18 PHP
php readfile()修改文件上传大小设置
Aug 11 PHP
PHP使用XMLWriter读写xml文件操作详解
Jul 31 PHP
php web环境和命令行环境下查找php.ini的位置
Jul 17 PHP
PHP标准库 (SPL)――Countable用法示例
Jun 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小型企业库存管理系统的设计与实现代码
2011/05/16 PHP
php pki加密技术(openssl)详解
2013/07/01 PHP
两个php日期控制类实例
2014/12/09 PHP
PHP5.2下preg_replace函数的问题
2015/05/08 PHP
Laravel实现批量更新多条数据
2020/04/06 PHP
用ASP将SQL搜索出来的内容导出为TXT的代码
2007/07/27 Javascript
给Javascript数组插入一条记录的代码
2007/08/30 Javascript
鼠标经过的文本框textbox变色
2009/05/21 Javascript
JavaScript聚焦于第一个字段的代码
2010/10/15 Javascript
JS对文本框值的判断示例
2014/03/10 Javascript
jQuery中:password选择器用法实例
2015/01/03 Javascript
Jquery动态添加输入框的方法
2015/05/29 Javascript
angular+bootstrap的双向数据绑定实例
2017/03/03 Javascript
jQuery实现全选、反选和不选功能
2017/08/16 jQuery
jQuery选择器之属性过滤选择器详解
2017/09/28 jQuery
javascript高级模块化require.js的具体使用方法
2017/10/31 Javascript
Angular使用过滤器uppercase/lowercase实现字母大小写转换功能示例
2018/03/27 Javascript
详解nodejs 配置文件处理方案
2019/01/02 NodeJs
微信小程序实现语音识别转文字功能及遇到的坑
2019/08/02 Javascript
Vue使用轮询定时发送请求代码
2020/08/10 Javascript
Element-ui树形控件el-tree自定义增删改和局部刷新及懒加载操作
2020/08/31 Javascript
Python快速排序算法实例分析
2017/11/29 Python
利用Python代码实现数据可视化的5种方法详解
2018/03/25 Python
pandas.DataFrame选取/排除特定行的方法
2018/07/03 Python
python统计指定目录内文件的代码行数
2019/09/19 Python
python3图片文件批量重命名处理
2019/10/31 Python
Python双链表原理与实现方法详解
2020/02/22 Python
Jmeter HTTPS接口测试证书导入过程图解
2020/07/22 Python
HTML5中判断用户是否正在浏览页面的方法
2014/05/03 HTML / CSS
危爆物品安全大检查大整治工作方案
2014/05/03 职场文书
建设办主任四风问题整改思路和措施
2014/09/20 职场文书
房屋买卖协议书范本
2014/09/27 职场文书
副检察长四风问题对照检查材料思想汇报
2014/10/07 职场文书
信用卡工资证明范本
2014/10/17 职场文书
HTML+CSS+JS实现图片的瀑布流布局的示例代码
2021/04/22 HTML / CSS
Vue ECharts实现机舱座位选择展示功能
2022/05/15 Vue.js