Home » FreeBSD » Cisco config backup Tool (Tag: , )

Cisco config backup Tool

2013/03/28 07:35

現在 Drive Network では L2, L3 スイッチが 20 台以上が稼働しています。過去 10 年程 Cisco Catalyst シリーズを使用して来て物理障害は一度もありませんが、設定内容のバックアップは設定変更毎に採集しています。

tftp を用いる方法等様々ありますが、私は Net::Telnet::Cisco を用いた Perl のプログラムが最もシンプルだと感じました。

./get.pl name とするだけで、show runnning-config, show vlan, show interfaces status の結果をファイルに出力します。スイッチ間での設定内容の整合性の確認等でも出力したファイルを操作した方が効率的です。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
#!/usr/bin/perl -w
#
# get.pl
#
 
#// -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
#// use Module
#// -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
 
use strict;
 
use Net::Telnet::Cisco;
 
#// -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
#// Controller
#// -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
 
    my $target = $ARGV[0];
 
    #// ----------------------------------------------------------
    #// Item Set
    #// ----------------------------------------------------------
 
    my $pass_vt = 'password0';   #// login
    my $pass_en = 'password';    #// enable
 
    my $list = {
        'sw00' => '192.168.20.10',
        'sw01' => '192.168.20.11',
    };
 
    #// ----------------------------------------------------------
    #// Start
    #// ----------------------------------------------------------
 
    foreach (%$list) {
        next unless ($list->{$_});
 
        if ($target) {
            next unless ($target eq $_);
        }
 
        my $addr = $list->{$_};
        my $host = $_;
 
        my $sess = Net::Telnet::Cisco->new(Host => $addr);
 
        $sess->login(Password => $pass_vt);
        $sess->enable($pass_en);
 
        my @cmd0 = $sess->cmd('show run');
        my @cmd1 = $sess->cmd('show vlan');
        my @cmd2 = $sess->cmd('show int status');
 
        $sess->close;
 
        #//
 
        my $date = substr(utime2date(time()), 0, 10);
        $date =~ s/\///g;
 
        my $file0 = $host . '_' . $date . '.run';
        my $file1 = $host . '_' . $date . '.vlan';
        my $file2 = $host . '_' . $date . '.stat';
 
        open WRITE, "+>$file0";
 
        foreach my $cmd (@cmd0) {
            next if ($cmd =~ /^Building/);
            #next if ($cmd =~ /^\n$/);
            next if ($cmd =~ /^Current/);
 
            print WRITE $cmd;
        }
 
        close WRITE;
 
        open WRITE, "+>$file1";
 
        foreach my $cmd (@cmd1) {
            print WRITE $cmd;
        }
 
        close WRITE;
 
        open WRITE, "+>$file2";
 
        foreach my $cmd (@cmd2) {
            print WRITE $cmd;
        }
 
        close WRITE;
 
        #//
 
        print "Done: $host\n";
    }
 
#// -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
#// Model
#// -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
 
sub utime2date {
    my ($sec, $min, $hours, $mday, $mon, $year, $wday, $yday, $isdst) = localtime($_[0]);
 
    my $years    = $year + 1900;
    my $this_mon = sprintf("%02d",$mon + 1);
 
    $mday  = sprintf("%02d", "$mday");
    $hours = sprintf("%02d", "$hours");
    $min   = sprintf("%02d", "$min");
    $sec   = sprintf("%02d", "$sec");
 
    my $date = "$years/$this_mon/$mday $hours:$min:$sec";
 
    return $date;
}

Random Select

ニライカナイそばセット
沖縄そばに限らず沖縄ご飯が食べたくなる衝動が続いていて、オフィスから歩いて 3 分程度の距離の すばや には日を空けずに 2 回続けて訪れました。すばや (野菜そば)すばや (タコライス)他にも同じ様
城山 (2)
伊江島 (No. 1 – 上陸) の続きです。伊江港ターミナルに降り立ち、車に乗り込む頃にはすっかりお昼時でした。ランチにするか迷いつつ簡単に島を流し始めると城山 (ぐすくやま) が見えま
ごぼう天うどん
靖国通りを小川町方面によく行き来しますが、スターバックス (神田小川町 2 丁目店) のそばに見掛ける立て看板が気になっていました。豊前うどん 武膳 といううどん店の様ですが、何度か見掛けて気になって
Mixed Fruit
始めるにあたって、ドローイン vs ロングプレス あたりから昼食も意図的にボリュームダウンして 2kg は落していました。が、前々から気になっていた断食ダイエットとも言われるファスティングダイエットに
生姜焼き定食
My Select "日本一シリーズ" 第 4 弾で真打ち登場。日本一美味しい黒豚餃子 よりも前から、それこそ確実に 20 年近く通い続けている とちぎや をご紹介。一時期お茶の水
和風おろしハンバーグと海老フライ定食
築地食堂 源ちゃん (魚河岸フライ定食) からあっという間に 1 年弱過ぎてしまいました。ここ最近はカリーライス専門店 エチオピア 本店 (No. 13 – 辛さ 70 倍メドレー 1)哲
川平湾 (16)
石垣島 (No. 7 ? 川平湾 Part 1) の続きです。スタート地点からは右側 (方位は南) の遊歩道を進んで様子をうかがった後は、再びスタート地点に戻り浜に降りました。少し風が強いくらいですが
HHKB Lite2
普段デスクトップ PC を使用していますが、キーボードは 10 年近く同じものを使用しています。かなり前の購入ということもあって PS/2 モデル ですし大分色が変わっていますが、未だ現役です。IT
Lavender
緑内障 (No. 4) の続きです。9 ヶ月近く様子見前回 2013/03/08 に診察を受けてからしばらく放置していました。点眼せずとも視野の狭窄も進まず眼圧も正常値だったこともあります。一応他の医
FreeBSD Logo
FreeBSD kernel compile に続いて /etc/sysctl.conf のチューニングサンプルです。ここでは、radserv 向けにチューニングし、動作実績のある設定ファイルを紹介し
Valid HTML5 Valid CSS3 Another HTML Lint