前面我们说到《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");
    return0;
}

编译该文件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就可以上述这种方法来做。

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

  1. php 负载监控_PHP监控linux服务器负载

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

  2. Nagios监控linux服务器

    原始出处 Nagios监控linux服务器 平台及所用组件,     监控服务器:RHEL5(192.168.0.20)+nagios-3.0.5+ nagios-plugins-1.4.11+ nr ...

  3. 使用visualvm远程监控LINUX服务器JVM

    使用visualvm远程监控LINUX服务器JVM 一.JMX方式: 1. 首先要修改JDK中JMX服务的配置文件,以获得相应的权限: 进入$JAVA_HOME所在的根目录的/jre/lib/mana ...

  4. linux监测node进程,通过node_exporter监控linux服务器一

    前言: node_exporter用于监控*nux系统,使用go编写的收集器 prometheus服务器:192.168.199.222 监控服务器 192.168.199.221 在192.168. ...

  5. Prometheus和Grafana的监控Linux服务器和MYSQL数据库

    [使用root用户执行以下操作] 目录 一.安装Prometheus和Grafana 1.安装 Prometheus 1)下载 Prometheus 2)解压安装包 3)启动prometheus 4) ...

  6. zabbix计算型监控项函数last_面试官:如何用zabbix实现监控linux服务器进程使用率...

    概述 今天主要介绍怎么用zabbix来监控linux服务器进程使用率,下面一起来看看吧~ 1.配置监控项 proc.num 是用来统计某些状态的进程数量的. proc.num[,,,] name - ...

  7. 服务器状态监控php源码,服务器状态监控_监控Linux服务器网站状态的SHELL脚本

    摘要 腾兴网为您分享:监控Linux服务器网站状态的SHELL脚本,蜗牛集市,同花顺,探客宝,手柄助手等软件知识,以及日期倒计时插件,云南省教育资源公共,rui手机桌面,小屁孩桌面便签,合金装备崛起复 ...

  8. java 监控linux服务器cpu使用率、内存使用率、磁盘使用率、java进程是否存活等服务

    java 监控linux服务器cpu.内存.java进程是否存活,发现异常发送邮件提醒 前一段时间在维护一个N年前的项目,这个项目有十几个服务器,每个服务器上有十几个服务.接手后的几个星期天天有事,要 ...

  9. 飞信msn多保险监控Linux服务器

    飞信msn多保险监控Linux服务器 作为Linux系统管理员,同时管理很多服务器,一但服务器发生故障,管理员不能及时发现和处理,会造成不必要的后果.我们不能时刻看屏幕进行控制,所以采用自动化报警系统 ...

最新文章

  1. 详解wait和waitpid函数
  2. 关于精密空调,你需要了解的都在这里!
  3. ML:MLOps系列讲解之《CRISP-ML (Q)ML生命周期过程—了解机器学习开发的标准过程模型—业务和数据理解→数据工程(数据准备)→ML模型工程→评估ML模型→模型部署→模型监控和维护》解读
  4. HBase环境搭建与使用
  5. 7-189 帅到没朋友 (20 分)
  6. Android应用开发(10)---资源类型
  7. java面试编程面试题_Java编程面试的前50个问题
  8. 运维的日常:如果回到18岁,你还会选择运维行业么?
  9. pos费率怎么用计算机计算,刷卡机费率怎么算出来的(简单有效的方法)
  10. 百度深度学习工程师认证(已通过)
  11. Aria2+yaaw+Chrome插件BaiduExporter实现百度网盘下载
  12. appstore ip地址
  13. 中国ERP三大流程 国外ERP黯然失色
  14. 2023跨境出海指南:马来西亚网红营销白皮书
  15. 教育部中央电教馆—家庭教育指导师证书
  16. 在线分析图片上的字体
  17. 计算墨水污染的格子【非常规墨水污染】
  18. jmeter分布式执行远程机报错,提示“Engine is busy – please try later”
  19. 入职阿里,一位女测试工程师的心声
  20. 费舍尔算法(文字描述,过于繁琐,其实实现很简单)

热门文章

  1. 为什么要使用main函数
  2. PAT 10-2 删除字符串中的子串
  3. Linux下mysql主从配置
  4. element-ui和semantic-ui冲突的解决方法--局部引入semantic-ui的css
  5. [M]MagicTable转换异常解决方法
  6. a different object with the same identifier value was already associated with the session解决方案
  7. 异常处理:Mybatis报错:There is no getter for property named ‘xxxx‘ in ‘class xxx‘
  8. 解决首次访问jenkins,输入默认密码之后,一直卡住问题
  9. TFTP 1.68智能刷机全能版发布,TTL线在CFE模式解决BCM5357如斐讯FIR302B等产品变砖问题
  10. 由于SSH配置文件的不匹配,导致的Permission denied (publickey)及其解决方法