【问题标题】:Perl script to execute commands in cisco router在 cisco 路由器中执行命令的 Perl 脚本
【发布时间】:2014-05-30 20:19:29
【问题描述】:

我是 perl 的新手。我试图登录到 cisco 路由器来执行一些命令。 我能够使用Net::SSH::Perl 登录并执行几个命令。 但是当我尝试切换到配置模式时,脚本失败了。

br-waas#

br-waas#configure

br-waas(config)#

是否有一个 perl cpan 模块可以做到这一点?

use  Net::SSH::Perl;

my $host = "XX.XX.XX.XX";
my $user = "XXXX";
my $password = "XXXX";

my $ssh = Net::SSH::Perl->new($host);
$ssh->login($user, $password);

print "check the version of the build \n";
my ($stdout) = $ssh->cmd("show statistics accelerator http object-cache");
print $stdout;

sleep(3);

print "enter the config mode \n";
my($stdout1) = $ssh->cmd("config");
print "$stdout1 \n";

当执行配置命令时,脚本失败并出现以下错误。 % Invalid input detected at '^' marker.

【问题讨论】:

  • 脚本如何失败?你具体观察到什么?到目前为止,您使用的代码在哪里?
  • @Miller 我已经添加了上面的代码。当配置命令执行时,脚本失败并出现以下错误。 % 在“^”标记处检测到无效输入。

标签: perl perl-module


【解决方案1】:

如果您在使用 Net:SSH 时遇到问题,Net::OpenSSH 一直为我做得很好。

如果您有一个启用密码,那么在一天结束时,您将需要一些实现 Expect 的东西,这总是很麻烦。

【讨论】:

  • 我没有启用密码。
  • Net::SSH::Expect 有帮助。谢谢
  • Net::SSH::Expect 由于其内部工作方式而非常不可靠。
【解决方案2】:

手动执行此操作时,“config”命令是否有效?我想你会在终端上得到一个回显的问题。

如果这是一个运行 IOS 的普通 Cisco 路由器,进入配置模式的命令是“configure terminal”。

【讨论】:

    【解决方案3】:

    对我有用的一个库是 NET::Appliance::Session。 它是可靠的,解决了 cisco 路由器/交换机的“通道锁定”问题,并且可以在不使用期望的情况下发送命令(或者至少在内部记不太清了)

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2023-03-29
      • 1970-01-01
      • 2012-03-29
      • 2015-11-12
      • 2013-06-17
      • 2012-10-20
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多