php获取linux服务器CPU、内存、硬盘使用率的实现代码
define("MONITORED_IP", "172.16.0.191"); //被监控的服务器IP地址 也就是本机地址
define("DB_SERVER", "172.16.7.2"); //存放数据的服务器IP地址
define("DB_USER", "root");
define("DB_PWD","111111");
define("DB_NMAE","performance");
class MyConnect{
public function connect($db_server,$db_user,$db_pwd,$db_name)
{
$conn = mysql_connect($db_server,$db_user,$db_pwd);
if (!$conn){
die('连接数据库失败: ' . mysql_error());
}
$flag = mysql_select_db($db_name,$conn);
if(!$flag){
echo "数据库连接出错!";
exit();
}else{
mysql_query("SET NAMES UTF8");
}
}
}
?>
2、获取服务器性能数据的文件 get_used_status.php
/** * 获取服务器性能CPU、内存、硬盘等使用率
* Edit bbs.it-home.org
*/
/*连接数据 begin*/
include("conn.php");
$obj_MyConnect = new MyConnect();
$obj_MyConnect -> connect(DB_SERVER,DB_USER,DB_PWD,DB_NMAE);
/*连接数据 end*/
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);
}
//echo date("Y-m-d H:i:s",time())."
";
$status=get_used_status();
$sql = "insert into performance(ip,cpu_usage,mem_usage,hd_avail,hd_usage,tast_running,detection_time) ";
$sql .= " value('".MONITORED_IP."','".$status['cpu_usage']."','".$status['mem_usage']."','".$status['hd_avail']."','".$status['hd_usage']."','".$status['tast_running']."','".$status['detection_time']."')";
$query = mysql_query($sql) or die("SQL 语句执行失败!");
unset($status);
//echo date("Y-m-d H:i:s",time())."
";
?>
php获取linux服务器CPU、内存、硬盘使用率的实现代码的更多相关文章
- 一个统计 CPU 内存 硬盘 使用率的shell脚本
一个统计 CPU 内存 硬盘 使用率的shell脚本,供大家学习参考 #!/bin/bash #This script is use for describle CPU Hard Memery Uti ...
- python glances来监控linux服务器CPU 内存 IO使用
什么是 Glances? Glances 是一个由 Python 编写,使用 psutil 库来从系统抓取信息的基于 curses 开发的跨平台命令行系统监视工具. 通过 Glances,我们可以监视 ...
- linux 查看cpu 内存 硬盘 文件夹大小
文件夹大小 显示cpu使用率 top 1 查看CPU 1.1 查看CPU个数 # cat /proc/cpuinfo | grep "physical id" | uniq | w ...
- C/C++获取Linux系统CPU和内存及硬盘使用情况
需求分析: 不使用Top df free 等命令,利用C/C++获取Linux系统CPU和内存及硬盘使用情况 实现: //通过获取/proc/stat (CPU)和/proc/meminfo(内存 ...
- Linux服务器CPU、内存、磁盘空间、负载情况查看python脚本
[本文出自天外归云的博客园] 网上搜,东拼西凑,组装了一个可以查Linux服务器CPU使用率.内存使用率.磁盘空间占用率.负载情况的python脚本. 脚本内容如下: # -*- coding:utf ...
- Java获取Linux系统cpu使用率
原文:http://www.open-open.com/code/view/1426152165201 import java.io.BufferedReader; import java.io.Fi ...
- Windows 性能监视器的基本指标(CPU,内存,硬盘参数)
转载:http://kms.lenovots.com/kb/article.php?id=7045 Windows 性能监视器的基本指标(CPU,内存,硬盘参数) 作为一个系统工程师来说,要看懂监控的 ...
- Windows 性能监视器的基本指标说明(CPU,内存,硬盘参数)
[转]Windows 性能监视器的基本指标说明(CPU,内存,硬盘参数) 作为一个系统工程师来说,要看懂监控的数据至关重要,关系着优化和分析出现的问题.我是在运维过程中要用到的.因此,今天给出Wind ...
- sehlle脚本获取linux服务器基本信息
将以下代码全选复制在linux机器上新建x.sh文件编辑复制进去执行即可. #获取linux服务器基本信息脚本 #!/bin/bash # #Name:system_info #Ver:1.0 #Au ...
随机推荐
- 124、TensorFlow替换函数
# tf.device给你了很多可伸缩性在TensorFlow的计算图中选择放置你的单独的操作 # 在许多的情况下,有很多启发可以工作的很好 # 例如tf.train.replica_device_s ...
- Centos7.2命令安装图形化界面
版权声明:本文为博主原创文章,遵循 CC 4.0 by-sa 版权协议,转载请附上原文出处链接和本声明.本文链接:https://blog.csdn.net/liang_operations/arti ...
- Linux 内核剖析
https://www.ibm.com/developerworks/cn/linux/l-linux-kernel/ 由于本文的目标是对 Linux 内核进行介绍并探索其体系结构和主要组件,因此首先 ...
- Maven系列学习(一)Maven基本知识
Maven 简介 1.Maven主要是基于Java平台的项目构建,依赖管理和项目信息 2.Maven是优秀的构建工具,跨平台,消除构建的重复,抽象了一个完整的构建生命周期模型,标准化构建过程 3.管理 ...
- python支持的进程与线程
一.multiprocessing模块介绍 python中的多线程无法利用CPU资源,在python中大部分情况使用多进程.python中提供了非常好的多进程包multiprocessing. mul ...
- Excel 技巧
<!-- Excel跳转到指定行指定列 --> =HYPERLINK("#"&ADDRESS(要跳转到的行数,要跳转到的列数),"跳转")
- [Bzoj1047][HAOI2007]理想的正方形(ST表)
题目链接:https://www.lydsy.com/JudgeOnline/problem.php?id=1047 题目虽然有一个n的限制,但求二维区间最值首先想到的还是RMQ,但是如果按照往常RM ...
- python 字符编码问题总结
都是计算机存储是二进制0101之类的数字 最早计算机在美国开始的 所以数字和英文之类的占用八位 2的8次方 256可以存储对于英文和数字戳戳有余 每个国家都有自己的编码 中国 gb2312 gbk ...
- spring(三):spring中BeanPostProcessor的使用
spring中实现BeanPostProcessor的后置处理器 ApplicationContextAwareProcessor 进入该实现类内部 可以看到:该类帮我们组建IOC容器,判断我们的be ...
- emit写了个实体转换程序
就我自己知道的,automapper是常用的,还是比较合适好用.不过我一般采用MVVM模式,其实就是简单的model名称不同而已,而这些转换器升级,扩展的很多,功能丰富,但是我用不到啊,又不能按照自己 ...