尝试使用phpseclib。 我正在连接SSH(不是Unix服务器)。使用命令“ show onu info”显示所有连接的设备(它向我显示MAC地址)
我要计算的是连接的设备数量。 我的想法是将输出保存到txt文件。可能吗?还是有更好的方法来计数包含单词“ M0D9 .....”的行?
谢谢
code:
//phpseclib:
// myserver
include('Net/SSH2.php');
$ssh = new Net_SSH2('myserverip');
$ssh->login('myusername', 'mypass') or die("Login failed");
echo $ssh->read('myusername@myserverip:~$');
$output = $ssh->write("show onu info\n");
echo $ssh->read('myusername@myserverip:~$');
echo "<br /><br /><br />";
不知道该怎么做。
尝试str_word_count:
code:
//phpseclib:
// myserver
include('Net/SSH2.php');
$ssh = new Net_SSH2('myserverip');
$ssh->login('myusername', 'mypass') or die("Login failed");
echo $ssh->read('myusername@myserverip:~$');
$str = $ssh->write("show onu info\n");
echo $ssh->read('myusername@myserverip:~$');
echo "<br /><br /><br />";
echo substr_count($str, "M0D9");
没用。仍然显示0,但有15条M0D9行。
答案 0 :(得分:1)
您不能像在一般的unix情况下那样仅将机器的标准输出“管道”到文本文件吗?然后,在Unix中,您可以使用grep来计算发生的次数。 是否可以提供有关服务器上操作系统的更多信息?
答案 1 :(得分:0)
根据您的代码:
echo $ssh->read('myusername@myserverip:~$');
$str = $ssh->write("show onu info\n");
echo $ssh->read('myusername@myserverip:~$');
echo "<br /><br /><br />";
echo substr_count($str, "M0D9");
尝试以下方法:
echo $ssh->read('myusername@myserverip:~$');
$ssh->write("show onu info\n");
$output = $ssh->read('myusername@myserverip:~$');
echo $output;
echo "<br /><br /><br />";
echo substr_count($output, "M0D9");