PowerConnect6248のコンフィグバックアップ自動化

DELLのL3スイッチ、PowerConnect6248のコンフィグバックアップを取るよ!
最初はNet::Telnet::Ciscoモジュールでいけるかなと思ったけどちょっとムリだった。
PerlでCiscoスイッチを操作 - IT 東京 楽しいと思うこと
Promptいじればいけそうなんだけど・・・


がんばってNet::Telnet::PowerConnect作るのもちょっと面倒なので
今回はNet::Telnet使います。

こんな感じで取れます

[mikeda@cent ~]$ perl get_pc_config.pl 192.168.1.2 mikeda mikepass
configure
vlan database
vlan  100-102
exit
stack
member 1 2
member 2 2
exit
ip address 192.168.0.100 255.255.255.0
ip routing
...

cron仕込んでテキトウなファイルに保存しましょう。

ソースコード

#!/usr/bin/perl
use strict;
use warnings;

use Net::Telnet;
#$Net::Telnet::DEBUG = 1;
my $prompt = '/User:$|Password:$|.*[>#]$|--More--/';

@ARGV ==3 or die "$0 host user pass";
my ($host, $user, $pass) = @ARGV;


my $t = new Net::Telnet(Prompt => $prompt);

$t->open($host);

$t->cmd($user);
$t->cmd($pass);
$t->cmd("enable");

my @result = $t->cmd("show running-config");
while($t->last_prompt =~ /--More--/){
  push @result ,$t->cmd(String => " ", Output_record_separator => "");
}

$t->close;


print grep !/^\s*$/,@result;

enableパスワードの設定等々によってちょっといじる必要があるかな。

前準備はこれだけ

[root@cent ~]# cpan Net::Telnet