是否可以将输出保存到文件?

时间:2019-12-06 13:00:42

标签: phpseclib

尝试使用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行。

2 个答案:

答案 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");