分享一段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 相关文章推荐
用cookies来跟踪识别用户
Oct 09 PHP
谈PHP生成静态页面分析 模板+缓存+写文件
Aug 17 PHP
php cli 小技巧
Jun 03 PHP
限制ckeditor上传图片文件大小的方法
Nov 15 PHP
ThinkPHP3.1新特性之对Ajax的支持更加完善
Jun 19 PHP
destoon数据库表说明汇总
Jul 15 PHP
[原创]PHP字符串中插入子字符串方法总结
May 06 PHP
Yii2中关联查询简单用法示例
Aug 10 PHP
php基于curl重写file_get_contents函数实例
Nov 08 PHP
php微信开发之音乐回复功能
Jun 14 PHP
laravel5.6实现数值转换
Oct 23 PHP
yii 框架实现按天,月,年,自定义时间段统计数据的方法分析
Apr 04 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中可以自动分割查询字符的Parse_str函数使用示例
2014/07/25 PHP
php header函数的常用http头设置
2015/06/25 PHP
PHP使用GD库输出汉字的方法【测试可用】
2016/11/10 PHP
Thinkphp自定义生成缩略图尺寸的方法
2019/08/05 PHP
JavaScript 浏览器验证代码(来自discuz)
2010/07/17 Javascript
JavaScript中操作Mysql数据库实例
2015/04/02 Javascript
详解JavaScript ES6中的模板字符串
2015/07/28 Javascript
JS模拟简易滚动条效果代码(附demo源码)
2016/04/05 Javascript
JavaScript toUpperCase()方法使用详解
2016/08/26 Javascript
js窗口震动小程序分享
2016/11/28 Javascript
Node.js查找当前目录下文件夹实例代码
2017/03/07 Javascript
Angular2使用Augury来调试Angular2程序
2017/05/21 Javascript
ionic2懒加载配置详解
2017/09/01 Javascript
微信小程序异步处理详解
2017/11/10 Javascript
ng-events类似ionic中Events的angular全局事件
2018/09/05 Javascript
layui问题之渲染数据表格时,仅出现10条数据的解决方法
2019/09/12 Javascript
vue 扩展现有组件的操作
2020/08/14 Javascript
[01:12:44]VG vs Mineski Supermajor 败者组 BO3 第二场 6.6
2018/06/07 DOTA
[49:30]DOTA2-DPC中国联赛正赛 Dragon vs Dynasty BO3 第二场 3月4日
2021/03/11 DOTA
Python字符串格式化
2015/06/15 Python
python opencv3实现人脸识别(windows)
2018/05/25 Python
Python 实现向word(docx)中输出
2020/02/13 Python
马来西亚网上花店:FlowerAdvisor马来西亚
2020/01/03 全球购物
TUMI香港官网:国际领先的行李箱、背囊品牌
2021/03/01 全球购物
几个判断型的面试题
2012/07/03 面试题
电大本科自我鉴定
2014/02/05 职场文书
幼儿园消防演练方案
2014/02/13 职场文书
商务日语专业自荐信
2014/04/17 职场文书
化学专业毕业生求职信
2014/07/28 职场文书
导游词欢迎词
2015/02/02 职场文书
新郎父母婚礼答谢词
2015/09/29 职场文书
教你使用TensorFlow2识别验证码
2021/06/11 Python
vue使用refs获取嵌套组件中的值过程
2022/03/31 Vue.js
彩虹社八名人气艺人全新周边限时推出,性转女装男装一次拥有!
2022/04/01 日漫
星际争霸 Light vs Action 一场把教主看到鬼畜的比赛
2022/04/01 星际争霸
mysql数据库实现设置字段长度
2022/06/10 MySQL