【发布时间】:2017-03-18 00:01:28
【问题描述】:
我正在尝试通过 Net::SSH2 连接到远程设备。如果我使用 $channel->blocking(0) 方法,那么即使连接和身份验证成功,我也不会从设备获得任何输出。如果我不使用 $channel->blocking(0),那么我得到了输出,但提示一直在闪烁,从某种意义上说程序卡住了。
代码
use Net::SSH2;
use strict;
$ssh = Net::SSH2->new()
$ssh->connect('xx.xx.xx.xx'))
$ssh->auth(username => 'xxxx', password => 'xxxx'))
my $channel = $ssh->channel() or do { print" [LOG ERROR]: Failed to create channel. Exiting ...\n"};
$channel->blocking(0);
$channel->shell() ;
print $channel "show status \n";
while(<$channel>)
{
print $_;
}
$channel->close();
$ssh->disconnect();
有人可以帮忙吗。
【问题讨论】:
-
如果您使用
shell,那么您必须与远程外壳“对话”。它不会卡住,它只是在那里等着你输入更多的命令。