zoukankan      html  css  js  c++  java
  • PHP监控linux服务器负载情况分析解决方案

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

      c程序

      首先写个c文件,比如/usr/local/ismole/w.c

      1.//note 由于wordpress编辑器的原因,请将此代码中头文件多余的空格去除消防泵

      2.#include < stdio.h>

      3.#include < stdlib.h>

      4.#include < systypes.h>

      5.#include < unistd.h>

      6.

      7.int main()

      8.{

      9.    uid_t uid ,euid;

      10.

      11.    //note 获得当前的uid

      12.    uid = getuid();

      13.    //note 获得当前euid

      14.    euid = geteuid();

      15.

      16.    //note 交换这两个id

      17.    if(setreuid(euid, uid))

      18.        perror("setreuid");

      19.

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

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

      22.    return 0;

      23.}

      //note 由于wordpress编辑器的原因,请将此代码中头文件多余的空格去除

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

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

      PHP执行

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

      1.< ?php

      2.//note key的验证过程

      3.if($key != $authkey) {

      4.//        exit('key error);

      5.}

      6.

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

      8.

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

      10.$returnString = $returnArray[1];

      11.

      12.echo $returnString;

      按照上面的实例,我们可以用PHP来做任何我们想执行的Linux系统命令,SVN更新,服务器监控南京,备份,恢复,日常维护等等。比如《利用SVN搭建测试服务器》

    消防泵相关信息请访问:

  • 相关阅读:
    认识与设计Serverless(二)
    认识与设计Serverless(一)
    log4j2动态修改日志级别及拓展性使用
    log4j2高级配置(1)
    log4j2介绍及配置
    Java 并发编程篇
    JAVA多线程之volatile 与 synchronized 的比较
    springboot分布式锁学习
    springboot2连接多数据库mysql+oracle
    Mysql的分页查询优化
  • 原文地址:https://www.cnblogs.com/lanxin258/p/2321691.html
Copyright © 2011-2022 走看看