使用 Mint 终端,我的脚本使用 ssh2_connect 和 ssh2_auth-password 进行连接。成功登录后,我想运行一个命令,该命令将为我提供硬件 cpu。有没有一种方法可以用来在我的脚本中执行命令然后显示结果。我已经使用 system 和 exec 进行 ping 操作。如果我在终端中,我会登录。然后输入“获取硬件cpu”
在终端中它看起来像这样:
测试~$获取硬件cpu
您需要访问外壳:
$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 流阻塞时会遇到问题。
你可以试试这个(需要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");
?>
我不知道这个“获取硬件”命令来自哪里。如果您想弄清楚是什么 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