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

Cisco config backup Tool では、Catalyst の標準的な Telnet パスワードでログインする場合を前提に作成しています。

Catalyst ではスイッチ本体に登録するユーザ名・パスワードによる認証も可能で、コマンド "aaa new-model" により AAA (Authentication, Authorization, Accounting) が有効な場合にも適用するサンプルです。

$aaa には、AAA が有効なスイッチを追加します。他はユーザ名の追加と $aaa にマッチした場合の条件分岐が主な変更です。

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
118
119
120
121
122
123
124
125
126
127
128
#!/usr/bin/perl -w
#
# get.pl
#
 
#// -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
#// use Module
#// -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
 
use strict;
 
use Net::Telnet::Cisco;
 
#// -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
#// Controller
#// -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
 
    my $target = $ARGV[0];
 
    #// ----------------------------------------------------------
    #// Item Set
    #// ----------------------------------------------------------
 
    my $user = 'user';
    my $pass_vt = 'password0';   #// login
    my $pass_en = 'password';    #// enable
 
    my $list = {
        'sw00' => '192.168.20.10',
        'sw01' => '192.168.20.11',
        'sw02' => '192.168.20.12',
    };
 
    my $aaa = {
        'sw01' => 1,
    };
 
    #// ----------------------------------------------------------
    #// 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);
 
        if ($aaa->{$_}) {
            $sess->login(Name => $user, Password => $pass_vt);
        } else {
            $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

ユーグレナモール
石垣島は、西表島や 与那国島 への経由で旧石垣空港や離島ターミナルを利用したのみで、島内を観光したことはありませんでした。それが今回、ゴールデンウィーク中に石垣島を訪れることになりました。ゴールデンウ
ビーフカレー + カレーソース
欧風カレー ボンディ (魚介カレー) の後は 10 月に訪れましたが、いつも訪れる小川町店ではすでに魚介カレーがメニューから消えていました。この時と 12 月にも 欧風カレー ボンディ (チキンカレー
久部良漁港から西崎灯台方面
与那国島 (No. 3 – 祖納 ? 久部良) の続きです。カレー屋ユキさんちを出て郵便局の前を過ぎると、すぐに久部良漁港が見えます。おぉ、漁労長の重さんや剛利さんがいそうです。ドラマで見
すだちおろし冷かけ
うどん 丸香 (まるか) に続いてオフィス近辺に最近目に付く 丸亀製麺 に挑戦しました。JR 御茶ノ水駅そばのお茶の水ビルディング地下でも見掛けたことがあるので、有名なのかなと後で調べれば、全国展開ど
radserv ope 25
今回はメモリが 4GB (2GB x 2) で納品された機器 radserv XG1+ (Q9000) を、8GB (4GB x 2) に構成変更しました。本体背面の銀色のネジ 2 本を外し、本体上の
radserv X
従来使用していた FreeBSD 7.1-RELEASE から、FreeBSD 9.1-RELEASE へのアップデートを全台適用中です。radserv XG1+ では気が付きませんでしたが、rads
41B0208 (1)
Drive Network Rack Gallery 2012 (Part 3) から約 6 ヶ月程経過しましたが、12 月は大きな変更がありました。共有サーバ ビジネスセレクトでは、お客様のデータ領
WS-C2960S-48TS-L (1)
Cisco Catalyst 2960S IOS Update (Part 3) の続きです。アップデート完了後に常に必要ではありませんが、既存の設定をすべて初期化する場合の参考にしてください。Mod
与那国産カジキ 300g (2 日目)
自宅 de 与那国産カジキ (Part 1) の続きです。薄いビニールに覆われていたカジキブロックを取り出し、まな板の上に乗せました。木の切り株の様です。この厚みが伝わるでしょうか。切り方を色々調べま
WS-C2960S-48TS-L (1)
Cisco Catalyst 2960S (ip device tracking Part 1) の続きです。現在ネットワーク内で使用している L2 スイッチは、すべて WS-C2960S-48TS-
Valid HTML5 Valid CSS3 Another HTML Lint