前面我们说到《PHP执行linux系统命令》:http://www.ccvita.com/390.html,即是为本文做铺垫。在实际项目的应用中,我们由于各种条件的现实,利用PHP来实现服务器负载监控将是一种更为灵活的方式。

由于Web Server以及PHP的实现方式所限,我们在现实环境中很难利用PHP去调用一些Linux中需要root权限才能执行的程序,对此,我从网上找到另外一种方式来绕开这个限制。首先先写个c程序中转调用系统命令,然后用PHP去执行此c程序。

c程序

首先写个c文件,比如/usr/local/ismole/w.c//note 由于wordpress编辑器的原因,请将此代码中头文件多余的空格去除

#include < stdio.h>

#include < stdlib.h>

#include < systypes.h>

#include < unistd.h>

int main()

{

uid_t uid ,euid;

//note 获得当前的uid

uid = getuid();

//note 获得当前euid

euid = geteuid();

//note 交换这两个id

if(setreuid(euid, uid))

perror("setreuid");

//note 执行将要执行linux系统命令

system("/usr/bin/w");

return 0;

}

编译该文件gcc -o w -Wall w.c,这时会在当前目录下生成程序w。

改变此程序的属主chmod u+s ./w。

PHP执行

文件内容如下,放在web目录下,访问就会输出当前的服务器负载情况。< ?php

/*

More & Original PHP Framwork

Copyright (c) 2007 - 2008 IsMole Inc.

$Id: serverMonitor.php 408 2008-12-02 08:07:40Z kimi $

*/

//note key的验证过程

if($key != $authkey) {

// exit('key error);

}

$last_line = exec('/usr/local/ismole/w', $retval);

$returnArray = explode("load average: ", $retval[0]);

$returnString = $returnArray[1];

echo $returnString;

按照上面的实例,我们可以用PHP来做任何我们想执行的Linux系统命令,SVN更新,服务器监控,备份,恢复,日常维护等等。比如《利用SVN搭建测试服务器》:http://www.ccvita.com/383.html就可以上述这种方法来做。

Tags: 服务器, 负载, 监控

版权声明:原创作品,欢迎转载,转载时请务必以超链接形式标明文章原始地址、作者信息和本声明。

php 负载监控_PHP监控linux服务器负载相关推荐

  1. 15个有趣的工具和服务来监控您的Linux服务器

    30个有趣的工具和服务来监控您的Linux服务器 前言 Webmin Grafana on Prometheus Cockpit M/Monit Netdata Netdata Checkmk Ope ...

  2. PHP监控linux服务器负载

    前面我们说到<PHP执行linux系统命令>:http://www.ccvita.com/390.html,即是为本文做铺垫.在实际项目的应用中,我们由于各种条件的现实,利用PHP来实现服 ...

  3. 监控宝 mysql_使用监控宝监控你的Linux服务器(附图)

    在http://www.unixbar.net/中看到使用监控宝监控服务器,感觉不错,就安装配置了一个,下面介绍一下具体的安装方法! 监控宝使用标准的SNMP协议来为用户提供服务器监控功能,这意味着被 ...

  4. linux服务器系统_利用Zabbix监控系统监测Linux服务器系统时间是否准确完美实现...

    服务器时间校准是非常重要的,因为很多应用服务都是需要基于时间的,服务器系统时间如果不准确的话就会产生很多问题.虽然我们可以通过部署NTP时间服务器来进行校准,但是有时候感觉还不够保险,而这往往也是很多 ...

  5. linux下流量监控统计软件,Linux服务器网卡流量统计监控软件vnStat

    服务器实际使用,我们需要根据我们的流量来购买合适带宽,毕竟现在的带宽和流量还是很贵的.有什么样的工具可以统计网络流量,并方便的查询呢?今天给大家介绍一款linux服务器网络流量统计工具vnstat. ...

  6. 两台linux服务器负载均衡代码实现,nginx实现负载均衡,nginx负载均衡确保两台服务器数据保...

    nginx实现负载均衡,nginx负载均衡确保两台服务器数据保 一.准备篇: Nginx 负载服务器: Centos 6.2 IP:192.168.1.93 WEB服务器: Web1:192.168. ...

  7. 魔兽世界服务器显示负载离线,《WOW》服务器负载过高 官方免费转服

    <魔兽世界>全新资料片"暗影国度"已于本周四正式开启,由于大量玩家同时登录,也给一些服务器造成了不小的负担.@魔兽世界官方微博今天发布公告称,官方为部分高负载.高排队的 ...

  8. linux负载的单位是,Linux系统负载

    8种机械键盘轴体对比 本人程序员,要买一个写代码的键盘,请问红轴和茶轴怎么选? 初识负载 我们平时使用top或者uptime时可以看到打印输出的系统平均负载(方便起见,后文都简称负载),分别是1分钟. ...

  9. linux 负载高 cpu低,Linux服务器CPU使用率较低但负载较高

    CPU使用率较低但负载较高 问题描述 Linux 系统没有业务程序运行,通过 top 观察,类似如下图所示,CPU 很空闲,但是 load average 却非常高,如下图所示. 处理办法 load ...

最新文章

  1. 小裁缝返乡创业做儿童品牌,如今身家数十亿冲刺上市
  2. ❤『知识集锦』一文搞懂mysql索引!!(建议收藏)
  3. 有趣的JS 一行代码 偷取所有图片
  4. 静态网页制作作业_HTML CSS复习之制作静态网页
  5. Kroneker Tensor:克罗内克张量
  6. HTML2CANVAS 在IOS13系统中不生效 解决方案
  7. 数木桩的c语言编程,Vijos P1007 绕钉子的长绳子 C语言版
  8. jquery.lazyload 插件实现图片延迟加载
  9. 推理集 —— 特殊的工具
  10. html5 预渲染,VUE预渲染及遇到的坑_情愫_前端开发者
  11. 修改Noteexpress插入参考文献序号的颜色
  12. 笔记本独显和集显linux,笔记本电脑独显不见了的解决方法介绍
  13. Advanced IP Scanner - 网络扫描器
  14. 关于我玩单片机学习路线(个人总结)
  15. 《关于促进互联网金融健康发展的指导意见》
  16. sklearn库中的标准数据集及基本功能
  17. 矢量分析 关于∇一些矢量恒等式速记法
  18. 【深度学习】---行人检测应用
  19. 解决物理机为ubuntu与virtualbox客户机为windows10间剪切板不能用的问题
  20. 三十五、影院页面(获取卖座官网的影院信息并显示)

热门文章

  1. 皮一皮:工作再忙,也记得陪陪孩子...
  2. 这款 20 万开发者使用的开发插件到底经历了什么?
  3. linux 终端 含义,ubuntu终端中@前后的字符串含义及修改-布布扣-bubuko.com
  4. Java为什么print显示不完全,read-eval-print-loop – 在Java 9上,为什么System.getenv()的输出在jshell中不完整?...
  5. 采用全文索引解决模糊查询速度慢的问题
  6. YOLO-ReT让边缘端也可以实时检测
  7. python调用海康sdk 数据类型
  8. MultiBox_Loss bug改进
  9. resnet50 自定义
  10. TORCH MAXIMUM