Net::SSH::W32Perl CMD执行无返回 求助
时间:2010-07-16
来源:互联网
代码如下:
#!/usr/bin/perl
use Net::SSH::W32Perl;
my $host = 'x.x.x.x';
my $ssh = new Net::SSH::W32Perl($host);
$ssh->login('XXX', XXX);
my ($out, $err, $exit) = $ssh->cmd('show vlan brief');
print $out;
print $err;
print $exit;
情况1:
确保IP,用户名,密码都正确,执行结果:
Use of uninitialized value $out in print at ...
Use of uninitialized value $err in print at ...
Use of uninitialized value $exit in print at ...
情况2:
故意写错IP,执行结果:
Can't connect to 10.17.14.184: Unknown error
情况3:
确保IP正确,故意写错用户名,密码,执行结果:
Permission denied at ...
有以上可以推断,连接到登陆应该都是对了的,可是为什么执行命令后没有任何的返回结果呢? 请各位高手指点。
#!/usr/bin/perl
use Net::SSH::W32Perl;
my $host = 'x.x.x.x';
my $ssh = new Net::SSH::W32Perl($host);
$ssh->login('XXX', XXX);
my ($out, $err, $exit) = $ssh->cmd('show vlan brief');
print $out;
print $err;
print $exit;
情况1:
确保IP,用户名,密码都正确,执行结果:
Use of uninitialized value $out in print at ...
Use of uninitialized value $err in print at ...
Use of uninitialized value $exit in print at ...
情况2:
故意写错IP,执行结果:
Can't connect to 10.17.14.184: Unknown error
情况3:
确保IP正确,故意写错用户名,密码,执行结果:
Permission denied at ...
有以上可以推断,连接到登陆应该都是对了的,可是为什么执行命令后没有任何的返回结果呢? 请各位高手指点。
作者: suxiaochen 发布时间: 2010-07-16
顶下楼主,遇到同样的问题,求解中。。。
代码如下:
#!/usr/bin/perl -w
use strict;
use Net::SSH::W32Perl;
my $port = "22";
my $ip = "192.168.1.1";
my $timeout = "15";
my $login = "192.168.254.254\@admin:abcd";
my $user = "admin";
my $pw = "abcd";
my $lines;
my $cmd="ls\n";
my $result = "login_NOK";
eval {
my $ssh = new Net::SSH::W32Perl($ip);
$ssh->login( $user, $pw );
#my ($out, $err,$exit) = $ssh->cmd('sh');
#print "out
out\n";
# sleep(3);
#my @lines=$ssh->cmd("fast sw-version read"
;
#print "@lines\n";
$ssh = undef;
};
if ($@) { print "$@\n";print "SSH login Failed\n"; }
#elsif(!defined $lines) { print "SSH login Failed....\n"; }
else{ $result = "login_OK"; }
print "$result\n";
单独只LOGIN肯定能成功,因为终端只允许一个USER登录,如果执行命令则无响应,一直停止在第一个$ssh->cmd。。
代码如下:
#!/usr/bin/perl -w
use strict;
use Net::SSH::W32Perl;
my $port = "22";
my $ip = "192.168.1.1";
my $timeout = "15";
my $login = "192.168.254.254\@admin:abcd";
my $user = "admin";
my $pw = "abcd";
my $lines;
my $cmd="ls\n";
my $result = "login_NOK";
eval {
my $ssh = new Net::SSH::W32Perl($ip);
$ssh->login( $user, $pw );
#my ($out, $err,$exit) = $ssh->cmd('sh');
#print "out

# sleep(3);
#my @lines=$ssh->cmd("fast sw-version read"

#print "@lines\n";
$ssh = undef;
};
if ($@) { print "$@\n";print "SSH login Failed\n"; }
#elsif(!defined $lines) { print "SSH login Failed....\n"; }
else{ $result = "login_OK"; }
print "$result\n";
单独只LOGIN肯定能成功,因为终端只允许一个USER登录,如果执行命令则无响应,一直停止在第一个$ssh->cmd。。
作者: yinpenghero 发布时间: 2010-08-31
相关阅读 更多
热门阅读
-
office 2019专业增强版最新2021版激活秘钥/序列号/激活码推荐 附激活工具
阅读:74
-
如何安装mysql8.0
阅读:31
-
Word快速设置标题样式步骤详解
阅读:28
-
20+道必知必会的Vue面试题(附答案解析)
阅读:37
-
HTML如何制作表单
阅读:22
-
百词斩可以改天数吗?当然可以,4个步骤轻松修改天数!
阅读:31
-
ET文件格式和XLS格式文件之间如何转化?
阅读:24
-
react和vue的区别及优缺点是什么
阅读:121
-
支付宝人脸识别如何关闭?
阅读:21
-
腾讯微云怎么修改照片或视频备份路径?
阅读:28