php獲取伺服器負載,php獲取伺服器信息

本文目錄一覽:

php通過 遠程(通過ip) 獲取伺服器cpu使用率,內存使用率等

你可以這樣做,在伺服器端放個獲取CPU使用率,內存使用率的API,然後你就可以在遠程獲取這個伺服器的CPU和內存使用率的情況了

PHP執行linux系統命令的常用函數使用說明

system函數

說明:執行外部程序並顯示輸出資料。

語法:string

system(string

command,

int

[return_var]);

返回值:

字元串

詳細介紹:

本函數就像是

C

語中的函數

system(),用來執行指令,並輸出結果。若是

return_var

參數存在,則執行

command

之後的狀態會填入

return_var

中。同樣值得注意的是若需要處理用戶輸入的資料,而又要防止用戶耍花招破解系統,則可以使用

EscapeShellCmd()。若

PHP

以模塊式的執行,本函數會在每一行輸出後自動更新

Web

伺服器的輸出緩衝暫存區。若需要完整的返回字元串,且不想經過不必要的其它中間的輸出界面,可以使用

PassThru()。

實例代碼:

複製代碼

代碼如下:

?php

$last_line

=

system(‘ls’,

$retval);

echo

‘Last

line

of

the

output:

.

$last_line;

echo

‘hr

/Return

value:

.

$retval;

?

exec函數

說明:執行外部程序。

語法:string

exec(string

command,

string

[array],

int

[return_var]);

返回值:

字元串

詳細介紹:

本函數執行輸入

command

的外部程序或外部指令。它的返回字元串只是外部程序執行後返回的最後一行;若需要完整的返回字元串,可以使用

PassThru()

這個函數。

要是參數

array

存在,command

會將

array

加到參數中執行,若不欲

array

被處理,可以在執行

exec()

之前呼叫

unset()。若是

return_var

array

二個參數都存在,則執行

command

之後的狀態會填入

return_var

中。

值得注意的是若需要處理使用者輸入的資料,而又要防止使用者耍花招破解系統,則可以使用

EscapeShellCmd()。

實例代碼:

複製代碼

代碼如下:

?php

echo

exec(‘whoami’);

?

popen函數

說明:打開文件。

語法:int

popen(string

command,

string

mode);

返回值:

整數

詳細介紹:

本函數執行指令開檔,而該文件是用管道方式處理的文件。用本函數打開的文件只能是單向的

(只能讀或只能寫),而且一定要用

pclose()

關閉。在文件操作上可使用

fgets()、fgetss()

fputs()。若是開檔發生錯誤,返回

false

值。

實例代碼:

複製代碼

代碼如下:

?

$fp

=

popen(“/bin/ls”,”r”

);

?

PHP監控linux伺服器負載

在實際項目的應用中,我們由於各種條件的現實,利用PHP來實現伺服器負載監控將是一種更為靈活的方式。

由於Web

Server以及PHP的實現方式所限,我們在現實環境中很難利用PHP去調用一些Linux中需要root許可權才能執行的程序,對此,我從網上找到另外一種方式來繞開這個限制。首先先寫個c程序中轉調用系統命令,然後用PHP去執行此c程序。

c程序

首先寫個c文件,比如/usr/local/ismole/w.c

複製代碼

代碼如下:

#includestdio.h

#includestdlib.h

#includesystypes.h

#includeunistd.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更新,伺服器監控,備份,恢復,日常維護等等。

PHP怎麼獲取系統信息和伺服器詳細信息

獲取系統類型及版本號: php_uname() (例:Windows NT COMPUTER 5.1 build 2600)

只獲取系統類型: php_uname(‘s’) (或:PHP_OS,例:Windows NT)

只獲取系統版本號: php_uname(‘r’) (例:5.1)

獲取PHP運行方式: php_sapi_name() (PHP run mode:apache2handler)

獲取前進程用戶名: Get_Current_User()

獲取PHP版本: PHP_VERSION

獲取Zend版本: Zend_Version()

獲取PHP安裝路徑: DEFAULT_INCLUDE_PATH

獲取當前文件絕對路徑: __FILE__

獲取Http請求中Host值: $_SERVER[“HTTP_HOST”] (返回值為域名或IP)

獲取伺服器IP: GetHostByName($_SERVER[‘SERVER_NAME’])

接受請求的伺服器IP: $_SERVER[“SERVER_ADDR”] (有時候獲取不到,推薦用:GetHostByName($_SERVER[‘SERVER_NAME’]))

獲取客戶端IP: $_SERVER[‘REMOTE_ADDR’]

獲取伺服器解譯引擎: $_SERVER[‘SERVER_SOFTWARE’]

獲取伺服器CPU數量: $_SERVER[‘PROCESSOR_IDENTIFIER’]

獲取伺服器系統目錄: $_SERVER[‘SystemRoot’]

獲取伺服器域名: $_SERVER[‘SERVER_NAME’] (建議使用:$_SERVER[“HTTP_HOST”])

獲取用戶域名: $_SERVER[‘USERDOMAIN’]

獲取伺服器語言: $_SERVER[‘HTTP_ACCEPT_LANGUAGE’]

獲取伺服器Web埠: $_SERVER[‘SERVER_PORT’]

訪問用戶的瀏覽器信息: $_SERVER[‘HTTP_USER_AGENT’];

script language=”JavaScript”

document.write(“瀏覽器名稱: “+navigator.appName+”br”);

document.write(“瀏覽器版本號: “+navigator.appVersion+”br”);

document.write(“系統語言: “+navigator.systemLanguage+”br”);

document.write(“系統平台: “+navigator.platform+”br”);

document.write(“瀏覽器是否支持cookie: “+navigator.cookieEnabled+”br”);

/script

原創文章,作者:NIVA,如若轉載,請註明出處:https://www.506064.com/zh-tw/n/141198.html

(0)
打賞 微信掃一掃 微信掃一掃 支付寶掃一掃 支付寶掃一掃
NIVA的頭像NIVA
上一篇 2024-10-04 00:24
下一篇 2024-10-04 00:24

相關推薦

  • PHP和Python哪個好找工作?

    PHP和Python都是非常流行的編程語言,它們被廣泛應用於不同領域的開發中。但是,在考慮擇業方向的時候,很多人都會有一個問題:PHP和Python哪個好找工作?這篇文章將從多個方…

    編程 2025-04-29
  • 伺服器安裝Python的完整指南

    本文將為您提供伺服器安裝Python的完整指南。無論您是一位新手還是經驗豐富的開發者,您都可以通過本文輕鬆地完成Python的安裝過程。以下是本文的具體內容: 一、下載Python…

    編程 2025-04-29
  • STUN 伺服器

    STUN 伺服器是一個網路伺服器,可以協助網路設備(例如 VoIP 設備)解決 NAT 穿透、防火牆等問題,使得設備可以正常地進行數據傳輸。本文將從多個方面對 STUN 伺服器做詳…

    編程 2025-04-29
  • 解決docker-compose 容器時間和伺服器時間不同步問題

    docker-compose是一種工具,能夠讓您使用YAML文件來定義和運行多個容器。然而,有時候容器的時間與伺服器時間不同步,導致一些不必要的錯誤和麻煩。以下是解決方法的詳細介紹…

    編程 2025-04-29
  • PHP怎麼接幣

    想要在自己的網站或應用中接受比特幣等加密貨幣的支付,就需要對該加密貨幣擁有一定的了解,並使用對應的API進行開發。本文將從多個方面詳細闡述如何使用PHP接受加密貨幣的支付。 一、環…

    編程 2025-04-29
  • Java 監控介面返回信息報錯信息怎麼處理

    本文將從多個方面對 Java 監控介面返回信息報錯信息的處理方法進行詳細的闡述,其中包括如何捕獲異常、如何使用日誌輸出錯誤信息、以及如何通過異常處理機制解決報錯問題等等。以下是詳細…

    編程 2025-04-29
  • 使用Python爬蟲獲取電影信息的實現方法

    本文將介紹如何使用Python編寫爬蟲程序,來獲取和處理電影數據。需要了解基本的Python編程語言知識,並使用BeautifulSoup庫和Requests庫進行爬取。 一、準備…

    編程 2025-04-28
  • 使用PHP foreach遍歷有相同屬性的值

    本篇文章將介紹如何使用PHP foreach遍歷具有相同屬性的值,並給出相應的代碼示例。 一、基礎概念 在講解如何使用PHP foreach遍歷有相同屬性的值之前,我們需要先了解幾…

    編程 2025-04-28
  • Python爬取網頁信息

    本文將從多個方面對Python爬取網頁信息做詳細的闡述。 一、爬蟲介紹 爬蟲是一種自動化程序,可以模擬人對網頁進行訪問獲取信息的行為。通過編寫代碼,我們可以指定要獲取的信息,將其從…

    編程 2025-04-28
  • 如何使用Python執行Shell命令並獲取執行過程信息

    本文將介紹如何使用Python執行Shell命令並獲取執行過程信息。我們將從以下幾個方面進行闡述: 一、執行Shell命令 Python內置的subprocess模塊可以方便地執行…

    編程 2025-04-28

發表回復

登錄後才能評論