如何从Web应用程序获取linux分区信息(df命令)

时间:2012-12-20 23:24:46

标签: php ssh cpanel partitioning whm

我的朋友有一些管理面板,他显示来自多个服务器的信息。他正在使用cPanel XML api来显示多个内容,例如服务器负载平均值,代码如下所示:

include("xmlapi.php");

$conf = simplexml_load_file("servers.xml");

foreach ( $conf->server as $server ) {
    $xmlapi = new xmlapi( $server->ip );
    $xmlapi->set_debug(1);
    $xmlapi->hash_auth( $server->user, $server->accesshash);
    $loadavg = $xmlapi->loadavg();

    print $server->ip . " - " . $loadavg->one . " - " . $loadavg->five . " - " . $loadavg->fifteen;
}

我一直在阅读wiki,但我发现越接近检索帐户磁盘使用情况。但我需要来自“df”命令的信息在ssh中以root身份运行。 最简单,最安全的方法是什么?因为我需要从多个服务器获取df命令输出,而不是从运行代码的服务器获取。

1 个答案:

答案 0 :(得分:0)

为什么需要将df作为“root”运行?我当然可以在我的Linux机器上运行它吗? (是的,这是一个问题,而不是答案)

假设您拥有对该计算机的完全访问权限,您可以设置一个useraccount“df”,它在具有!authenticate属性的sudoers中列出(因此它可以没有密码sudo),然后{{1} } 您也可以限制sudo,以便df“用户只能执行df,而不是,例如ssh df@${machine} sudo dfrm -rf /

当然设置你的ssh使用公共/私人密钥挑战而不是使用你的php代码在源代码中拥有密码 - 如果没有别的因为它使它更灵活,你不必更新您决定更改密码的来源。