通过PHP实现远程变量(网络使用、处理器负载、开放进程等)

通过PHP实现远程变量(网络使用、处理器负载、开放进程等),php,html,remote-access,Php,Html,Remote Access,我运行一个php服务器,我想开发一个php脚本,当用户调用该脚本时,它会从服务器回显网络使用情况、处理器负载、开放进程等。这是可能的吗?您可以使用,在其中可以运行sys命令,并将输出作为字符串返回(您可以在其中进行解析) 例如: <?php $output = array(); exec("ps" , $output); var_dump($output); ?> 我在周末从/proc/文件系统中读到了一些东西,这些东西可能比通过exec()进行分叉更轻,尽管它的可移植性也可

我运行一个php服务器,我想开发一个php脚本,当用户调用该脚本时,它会从服务器回显网络使用情况、处理器负载、开放进程等。这是可能的吗?

您可以使用,在其中可以运行sys命令,并将输出作为字符串返回(您可以在其中进行解析)

例如:

<?php
$output = array();

exec("ps" , $output);

var_dump($output);

?>

我在周末从
/proc/
文件系统中读到了一些东西,这些东西可能比通过
exec()
进行分叉更轻,尽管它的可移植性也可能更低

function getMem() {
    $mem = '';
    if($r = @file_get_contents('/proc/meminfo')) {
        $dat = array();
        foreach(explode("\n", $r) as $line) {
            if(preg_match('/^([^:]+):[ ]+([0-9]+.*)$/', $line, $matches))
                $dat[$matches[1]] = $matches[2];
        }
        $free = (int)((@$dat['MemFree'] + @$dat['Cached']) / 1024);
        $mem = $free . 'MB / ' . (int)(@$dat['MemTotal'] / 1024) . 'MB';
    }
    return $mem;
}

function getLoad() {
    $load = null;
    if($r = @file_get_contents('/proc/loadavg')) {
        $l = explode(' ', $r);
        $load = implode(' ', array($l[0], $l[1], $l[2]));
    }
    return $load;
}

任何例子都很好,谢谢!很多此类数据也可以从
/proc/
文件系统中读取。谢谢,现在我知道了,但是我找不到任何DOS命令告诉我进程或打开进程的负载,知道吗?再次感谢!我读过这篇关于通过命令行查找CPU使用情况等的文章。
function getMem() {
    $mem = '';
    if($r = @file_get_contents('/proc/meminfo')) {
        $dat = array();
        foreach(explode("\n", $r) as $line) {
            if(preg_match('/^([^:]+):[ ]+([0-9]+.*)$/', $line, $matches))
                $dat[$matches[1]] = $matches[2];
        }
        $free = (int)((@$dat['MemFree'] + @$dat['Cached']) / 1024);
        $mem = $free . 'MB / ' . (int)(@$dat['MemTotal'] / 1024) . 'MB';
    }
    return $mem;
}

function getLoad() {
    $load = null;
    if($r = @file_get_contents('/proc/loadavg')) {
        $l = explode(' ', $r);
        $load = implode(' ', array($l[0], $l[1], $l[2]));
    }
    return $load;
}