使用Mint终端,我的脚本使用ssh2_connect和ssh2_auth-password连接。 当我成功登录时,我想运行一个命令,它将给我硬件CPU。有没有办法可以用来在我的脚本中执行命令然后显示结果。我使用system和exec进行ping操作。如果我在终端我登录。然后输入“get hardware cpu”
终端中的看起来像这样:
测试〜$ get hardware cpu
答案 0 :(得分:1)
您需要访问shell:
$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流阻塞时遇到问题。
答案 1 :(得分:1)
您可以尝试此操作(需要phpseclib, a pure PHP SSH2 implementation):
<?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");
?>
答案 2 :(得分: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