2013-02-04 58 views
0

我曾嘗試使用這種可能的解決方案沒有任何的運氣:獲得來自中繼和頂端的某些信息

$test = passthru('/usr/bin/top -b -n 1'); 
preg_match('([0-9]+ total)', $test, $matches); 
var_dump($matches); 

該代碼顯示如下文字:

top - 19:15:43 up 31 days, 23 min, 1 user, load average: 0.00, 0.01, 0.05 Tasks: 85 total, 1 running, 84 sleeping, 0 stopped, 0 zombie Cpu(s): 0.1%us, 0.0%sy, 0.0%ni, 99.8%id, 0.1%wa, 0.0%hi, 0.0%si, 0.0%st Mem: 247980k total, 224320k used, 23660k free, 68428k buffers Swap: 521212k total, 37120k used, 484092k free [...] 0.4 0:00.00 top array(0) { } 

我如何可以採取一定的信息像任務總數,所以它只顯示例如84 total

在此先感謝。

+1

'passthru()'不返回輸出,它將它發送到瀏覽器。如果你想捕獲一個變量的輸出,使用'exec()'。 – Barmar

+1

只是想知道你是否試過這個:/ usr/bin/top -b -n 1 | grep任務:| awk -F'''{print $ 2''$ 3}' – Satish

+0

Barmat:謝謝你的回答,但exec()並沒有給我任何輸出。薩蒂什:不,但我現在測試它,它給了我錯誤500(內部服務器錯誤); 'passthru(「/ usr/bin/top -b -n 1 | grep任務:| awk -F'''{print $ 2」'$ 3}'「)''。如果我使用'exec()'而不是'passthru()'來執行命令 – Erik

回答

0

感謝Barmar和Satish,我得到了它的工作。下面是正確的代碼:

exec("/usr/bin/top -b -n 1 | grep Tasks: | awk -F' ' '{print $4}'")

非常感謝! :)