当前位置:Gxlcms > PHP教程 > PHP监控linux服务器负载_PHP教程

PHP监控linux服务器负载_PHP教程

时间:2021-07-01 10:21:17 帮助过:51人阅读

  由于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. int main()
  7. {
  8. uid_t uid ,euid;
  9. //note 获得当前的uid
  10. uid = getuid();
  11. //note 获得当前euid
  12. euid = geteuid();
  13. //note 交换这两个id
  14. if(setreuid(euid, uid))
  15. perror("setreuid");
  16. //note 执行将要执行linux系统命令
  17. system("/usr/bin/w");
  18. return 0;
  19. }

  //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. $last_line = exec(/usr/local/ismole/w, $retval);
  7. $returnArray = explode("load average: ", $retval[0]);
  8. $returnString = $returnArray[1];
  9. echo $returnString;

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

www.bkjia.comtruehttp://www.bkjia.com/PHPjc/486281.htmlTechArticle由于Web Server以及PHP的实现方式所限,我们在现实环境中很难利用PHP去调用一些Linux中需要root权限才能执行的程序,对此,我从网上找到另外...

人气教程排行