Net :: SSH2経由でリモートデバイスに接続しようとしています。 $ channel-> blocking(0)メソッドを使用している場合、接続と認証が成功したとしても、デバイスからの出力は得られません。 $ channel-> blocking(0)を使用しないと、出力が得られますが、プロンプトが点滅し続けます。Net :: SSH2を使用してリモートデバイスから出力を取得できません
コード
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'を使うなら、あなたはリモートシェルに"話す "必要があります。それは立ち往生しません、それはあなたがより多くのコマンドを入力するのを待っているだけです。 – salva