0

我正在编写一个脚本来通过保存输出“show run”来保存交换机配置,因为固件在通过 tftp 工作时存在问题。“show run”的输出除以帖子More: <space>, Quit: q, One line: <return>

# sh run
no spanning-tree
interface port-channel 1
shutdown
exit
interface port-channel 2
shutdown
exit
interface port-channel 3
shutdown
exit
interface port-channel 4
shutdown
exit
interface port-channel 5
shutdown
exit
interface port-channel 6
shutdown
exit
interface port-channel 7
shutdown
exit
More: <space>,  Quit: q, One line: <return>

我的部分脚本如下:

foreach (@linksys_sps){
  print ("Connecting to ",$_,"\n");
  my $telnet = new Net::Telnet ( Timeout=>10,Errmode=>'return');
  $telnet->open($_);
  if ($telnet->errmsg){
    print "Can't connect to " . $_ . " Error: " . $telnet->errmsg . "\n";
  } else {
    $telnet->waitfor('/User Name:$/i');
    $telnet->print('admin');
    $telnet->waitfor('/Password:$/i');
    $telnet->print('password');
    my @lines = $telnet->cmd("sh run");
    print @lines;
    sleep(5);
    $telnet->print('exit');
  }
}

以及他的工作成果:

# sh run
no spanning-tree
interface port-channel 1
shutdown
exit
interface port-channel 2
shutdown
exit
interface port-channel 3
shutdown
exit
interface port-channel 4
shutdown
exit
interface port-channel 5
shutdown
exit
interface port-channel 6
shutdown
exit
interface port-channel 7
shutdown
exit
More: <space>,  Quit: q, One line: <return>

如何解决?

4

2 回答 2

1

您的交换机上是否有将页面长度设置为零 (0) 的选项?如果是这样,您必须在执行“sh run”命令之前添加它。

于 2013-03-03T23:15:53.107 回答
0

在阿尔卡特 6224 和相同的戴尔 powerconnect 3548 上它可以工作:

my @lines = $telnet->cmd("terminal datadump");
@lines = $telnet->cmd("show run");
于 2013-07-13T15:14:42.290 回答