分享一段php获取linux服务器状态的代码

简单的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);
 }

(0)

相关推荐

  • linux系统上支持php的 iconv()函数的方法

    1.下载libiconv函数库http://ftp.gnu.org/pub/gnu/libiconv/libiconv-1.9.2.tar.gz: 2.解压缩tar -zxvf libiconv-1.9.2.tar.gz; 3.安装libiconv 复制代码 代码如下: #configure --prefix=/usr/local/iconv #make #make install 4.重新编译php 增加编译参数--with-iconv=/usr/local/iconv windows下 最近

  • PHP中获取内网用户MAC地址(WINDOWS/linux)的实现代码

    复制代码 代码如下: function ce_getmac() { if(PHP_OS == 'WINNT') { $return_array = array(); $temp_array = array(); $mac_addr = ""; @exec("arp -a",$return_array); foreach($return_array as $value) { if(strpos($value,$_SERVER["HTTP_CLIENT_IP&

  • php获取网卡的MAC地址支持WIN/LINUX系统

    复制代码 代码如下: <?php /** 获取网卡的MAC地址原码:目前支持WIN/LINUX系统 获取机器网卡的物理(MAC)地址 **/ class GetMacAddr{ var $return_array = array(); // 返回带有MAC地址的字串数组 var $mac_addr; function GetMacAddr($os_type){ switch ( strtolower($os_type) ){ case "linux": $this->for

  • Linux系统下php获得系统分区信息的方法

    本文实例讲述了Linux系统下php获得系统分区信息的方法.分享给大家供大家参考.具体实现方法如下: $pars = array_filter(explode("\n",`df -h`)); foreach ($pars as $par) { if ($par{0} == '/') { $_tmp = array_values(array_filter(explode(' ',$par))); reset($_tmp); echo "分区挂载点:{$_tmp['5']},&q

  • PHP执行linux系统命令的常用函数使用说明

    system函数 说明:执行外部程序并显示输出资料. 语法:string system(string command, int [return_var]); 返回值: 字符串 详细介绍: 本函数就像是 C 语中的函数 system(),用来执行指令,并输出结果.若是 return_var 参数存在,则执行 command 之后的状态会填入 return_var 中.同样值得注意的是若需要处理用户输入的资料,而又要防止用户耍花招破解系统,则可以使用 EscapeShellCmd().若 PHP 以

  • php $_SERVER windows系统与linux系统下的区别说明

    这是我在做企业站的过程中发现的一些区别:(仅供参考) 一.$_SERVER['SERVER_NAME']  在windows系统下,末尾是有 / 的,linux下没有/ . 可用以下方法处理 1.不论是那种系统直接全部加上 / 然后在进行替换 ,切记 ,应如此替换 str_replace('\\', '/', $fileUrl); 才可以. 2.判断是那种操作系统,使用PHP_OS,然后进行字符截取进行判断.

  • php获取服务器端mac和客户端mac的地址支持WIN/LINUX

    获取服务器mac 复制代码 代码如下: <?php /** 获取网卡的MAC地址原码:目前支持WIN/LINUX系统 获取机器网卡的物理(MAC)地址 **/ class GetmacAddr{ var $result = array(); // 返回带有MAC地址的字串数组 var $macAddr; /*构造*/ function __construct($osType){ switch ( strtolower($osType) ){ case "unix": break;

  • 分享一段php获取linux服务器状态的代码

    简单的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

  • java获取linux服务器上的IP操作

    在编码过程中需要获取本地IP地址,首先使用的是下面的方法,在Windows环境正常,但是linux服务器上就获取不到, public static String getIpAddress() { String hostAddress = ""; try { InetAddress address = InetAddress.getLocalHost(); hostAddress = address.getHostAddress(); } catch (UnknownHostExcept

  • 详解Linux服务器状态、性能相关命令

    服务器状态分析 查看Linux服务器CPU详细情况 #查看CPU的信息 [root@host ~]# cat /proc/cpuinfo  #查看物理CPU的个数 [root@host /]# cat /proc/cpuinfo | grep "physical id" | sort | uniq | wc -l #查看每个物理CPU的核数 [root@host /]# cat /proc/cpuinfo | grep "cpu cores" | uniq #逻辑C

  • 如何监控 Linux 服务器状态

    Linux 服务器我们天天打交道,特别是 Linux 工程师更是如此.为了保证服务器的安全与性能,我们经常需要监控服务器的一些状态,以保证工作能顺利开展. 本文介绍的几个命令,不仅仅适用于服务器监控,也适用于我们日常情况下的开发. 1. watch watch 命令我们的使用频率很高,它的基本作用是,按照指定频率重复执行某一条指令.使用这个命令,我们可以重复调用一些命令来达到监控服务器的作用. 默认情况下,watch 命令的执行周期是 2 秒,但我们可以使用 -n 选项来指定运行频率,比如我们想

  • 如何监控 Linux 服务器状态的方法

    Linux 服务器我们天天打交道,特别是 Linux 工程师更是如此.为了保证服务器的安全与性能,我们经常需要监控服务器的一些状态,以保证工作能顺利开展. 本文介绍的几个命令,不仅仅适用于服务器监控,也适用于我们日常情况下的开发. 1. watch watch 命令我们的使用频率很高,它的基本作用是,按照指定频率重复执行某一条指令.使用这个命令,我们可以重复调用一些命令来达到监控服务器的作用. 默认情况下,watch 命令的执行周期是 2 秒,但我们可以使用 -n 选项来指定运行频率,比如我们想

  • python和shell监控linux服务器的详细代码

    本文实例为大家分享了python和shell监控linux服务器的具体代码,供大家参考,具体内容如下 1. shell监控负载 监控原理:使用uptime来获取负载的信息,然后通过字符串截取的方式来获取load值来获取单个核心的负载,在将负载与阈值比较确定是否报警. loard_monitor.sh脚本: #!/bin/bash #使用uptime命令监控linux系统负载变化 #提取本服务器的IP地址信息 IP=`ifconfig eth0 | grep "inet addr" |

  • Java连接Linux服务器过程分析(附代码)

    这篇文章主要介绍了Java连接Linux服务器过程分析(附代码),文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下 pom文件添加依赖 <!-- https://mvnrepository.com/artifact/ch.ethz.ganymed/ganymed-ssh2 --> <dependency> <groupId>ch.ethz.ganymed</groupId> <artifactId>

  • 详解Nodejs get获取远程服务器接口数据

    本文实例为大家分享了Nodejs get获取远程服务器接口数据的具体代码,供大家参考,具体内容如下 1.GET模块:_get.js /** * Created by jinx on 7/7/17. */ var http = require('http'); module.exports = { /** * 测试获取所有的区域 * / locations: function (cb) { http.get('http://wx.xx.com/locations', function (res)

  • 用定制的PHP应用程序来获取Web服务器的状态信息

    大多数网站托管(Web hosting)公司都支持客户对Web站点统计数据的访问,但是你往往会觉得服务器所产生的状态信息不够全面.例如,配置不正确的Web服务器不能识别某些文件类型,这些类型的文件就不会出现在状态信息之中.幸好,你可以用PHP来定制状态信息收集程序,这样你就可以获取你所需要的信息了. 公共日志文件格式(Common Logfile Format,CLF)的结构 CLF最初是NCSA为HTTPd(全球网服务器软件)而设计的.CERN HTTPd是一个由万维网联盟(World Wid

  • 使用scp获取远程linux服务器上的文件 linux远程拷贝文件

    一.scp是什么? scp是secure copy的简写,用于在Linux下进行远程拷贝文件的命令,和它类似的命令有cp,不过cp只是在本机进行拷贝不能跨服务器,而且scp传输是加密的.可能会稍微影响一下速度. 二.scp有什么用? 1.我们需要获得远程服务器上的某个文件,远程服务器既没有配置ftp服务器,没有开启web服务器,也没有做共享,无法通过常规途径获得文件时,只需要通过scp命令便可轻松的达到目的. 2.我们需要将本机上的文件上传到远程服务器上,远程服务器没有开启ftp服务器或共享,无

随机推荐