分享一段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 相关文章推荐
mysql 字段类型说明
Apr 27 PHP
PHP的范围解析操作符(::)的含义分析说明
Jul 03 PHP
PHP通过正则表达式下载图片到本地的实现代码
Sep 19 PHP
浅谈apache和nginx的rewrite的区别
Feb 22 PHP
PHP弹出提示框并跳转到新页面即重定向到新页面
Jan 24 PHP
PHP命名空间(namespace)的动态访问及使用技巧
Aug 18 PHP
php中call_user_func函数使用注意事项
Nov 21 PHP
PHP文件上传问题汇总(文件大小检测、大文件上传处理)
Dec 24 PHP
在Win2003(64位)中配置IIS6+PHP5.2.17+MySQL5.5的运行环境
Apr 04 PHP
thinkphp框架page类与bootstrap分页(美化)
Jun 25 PHP
Yii框架模拟组件调用注入示例
Nov 11 PHP
laravel通用化的CURD的实现
Dec 13 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
Yii框架中memcache用法实例
2014/12/03 PHP
PHP 获取ip地址代码汇总
2015/07/05 PHP
PHP中的数组处理函数实例总结
2016/01/09 PHP
PHP实现微信网页授权开发教程
2016/01/19 PHP
php字符集转换
2017/01/23 PHP
实例讲解YII2中多表关联的使用方法
2017/07/21 PHP
PHP调用全国天气预报数据接口查询天气示例
2019/02/20 PHP
最短的IE判断代码
2011/03/13 Javascript
Javascript中引用示例介绍
2014/02/21 Javascript
JS实现局部选择打印和局部不选择打印
2014/04/03 Javascript
javascript面向对象之共享成员属性与方法及prototype关键字用法
2015/01/13 Javascript
jQuery实现菜单感应鼠标滑动动画效果的方法
2015/02/28 Javascript
javascript实现实时输出当前的时间
2015/04/27 Javascript
jQuery获取当前点击的对象元素(实现代码)
2016/05/19 Javascript
EasyUI布局 高度自适应
2016/06/04 Javascript
微信小程序模板之分页滑动栏
2017/02/10 Javascript
原生JS实现的双色球功能示例
2018/02/02 Javascript
vue-cli 构建骨架屏的方法示例
2018/11/08 Javascript
layer.alert回调函数执行关闭弹窗的实例
2019/09/11 Javascript
react结合bootstrap实现评论功能
2020/05/30 Javascript
antd的select下拉框因为数据量太大造成卡顿的解决方式
2020/10/31 Javascript
Nest.js散列与加密实例详解
2021/02/24 Javascript
[38:27]完美世界DOTA2联赛PWL S2 Forest vs FTD.C 第二场 11.26
2020/11/30 DOTA
利用Python为iOS10生成图标和截屏
2016/09/24 Python
zookeeper python接口实例详解
2018/01/18 Python
Python实现快速排序的方法详解
2019/10/25 Python
Python编程快速上手——选择性拷贝操作案例分析
2020/02/28 Python
PyTorch预训练Bert模型的示例
2020/11/17 Python
研究生自我鉴定范文
2013/10/30 职场文书
生产经理的自我评价分享
2013/11/07 职场文书
大学生自我鉴定书
2014/03/24 职场文书
保险内勤岗位职责
2014/04/05 职场文书
留守儿童工作方案
2014/06/02 职场文书
乡镇爱国卫生月活动总结
2014/06/25 职场文书
会议欢迎词
2015/01/23 职场文书
党员转正意见怎么写
2015/06/03 职场文书