PHP監控linux伺服器負載_PHP教程

來源:互聯網
上載者:User
  由於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搭建測試伺服器》

http://www.bkjia.com/PHPjc/486281.htmlwww.bkjia.comtruehttp://www.bkjia.com/PHPjc/486281.htmlTechArticle由於Web Server以及PHP的實現方式所限,我們在現實環境中很難利用PHP去調用一些Linux中需要root許可權才能執行的程式,對此,我從網上找到另外...

  • 聯繫我們

    該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

    如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

    A Free Trial That Lets You Build Big!

    Start building with 50+ products and up to 12 months usage for Elastic Compute Service

    • Sales Support

      1 on 1 presale consultation

    • After-Sales Support

      24/7 Technical Support 6 Free Tickets per Quarter Faster Response

    • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.