0

使用 Mint 终端,我的脚本使用 ssh2_connect 和 ssh2_auth-password 进行连接。成功登录后,我想运行一个命令,该命令将为我提供硬件 cpu。有没有一种方法可以用来在我的脚本中执行命令然后显示结果。我已经使用 system 和 exec 进行 ping 操作。如果我在终端中,我会登录。然后输入“获取硬件cpu”

在终端中它看起来像这样:

测试~$获取硬件cpu

4

3 回答 3

1

您需要访问外壳:

$connection = ssh2_connect($ip, $port);
$stream = ssh2_shell($connection);
fputs($stream, $input);
$buffer = fread($stream, 8192);

看看这个例子:

$input = "ls\nexit\n";
$connection = ssh2_connect($host, $port);
ssh2_auth_password($connection, $user, $pass);
$stream = ssh2_shell($connection);
stream_set_blocking($stream, 1);
stream_set_timeout($stream, 2);
fputs($stream, $input);

while (!feof($stream)) {
        echo $buffer = fread($stream, $buffersize);
}

您可能不得不手动设置sleep()fread()因为人们在设置 ssh2 流阻塞时会遇到问题。

于 2012-11-15T15:10:56.373 回答
1

你可以试试这个(需要phpseclib,一个纯 PHP SSH2 实现):

<?php
include('Net/SSH2.php');

$ssh = new Net_SSH2('www.domain.tld');
if (!$ssh->login('username', 'password')) {
    exit('Login Failed');
}

echo $ssh->exec("grep 'model name' /proc/cpuinfo");
?>
于 2012-11-19T14:11:02.343 回答
0

我不知道这个“获取硬件”命令来自哪里。如果您想弄清楚是什么 CPU 为系统供电,那么

grep 'model name' /proc/cpuinfo

将输出cpu的ID字符串:

marc@panic:~$ grep 'model name' /proc/cpuinfo
model name      : Intel(R) Core(TM)2 CPU          6600  @ 2.40GHz
model name      : Intel(R) Core(TM)2 CPU          6600  @ 2.40GHz
于 2012-11-15T15:07:13.277 回答