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 にマッチした場合の条件分岐が主な変更です。

#!/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

2014 イチハナリアートプロジェクト (2)
沖縄本島 (No. 32 – アラハビーチ 〜 海中道路) の続きです。今回の沖縄入り前に、すでに 2014 イチハナリアートプロジェクト を訪れた人の記事や投稿を、来年タイミングが合えば
雑貨さくら (1)
与那国島 (No. 12 – 東崎 ? 祖納港) の続きです。数年前に西表島を訪れたことがあります。帰った後に やえやまブログ があることを思い出し、石垣島・西表島・与那国島から 2 つず
My Select (2013/05/20)
今日から 4 ヶ月振りの沖縄出張で 2 週間滞在します。05/01 から沖縄支店 (? てぃーだスクエア) で始まった てぃーだ社員食堂 に興味津々です。開始日からしばらくはブログや facebook
緋寒桜 (ひかんざくら)
沖縄出張 (No. 17 – きしもと食堂) の後は八重岳に向かいました。私が北部に行く時は大抵曇りが多いのですが、何とも好天に恵まれました。記憶にある沖縄の濃い青色の空です。麓付近に着く
ミニストップ 沖縄フェア (1)
ミニストップで "沖縄フェア" を開催していて、カップ麺の沖縄そばやポテトチップス (タコライス味) 等をゲットされた方の写真が facebook 沖縄ユーザーグループ で目に付き
琉球泡盛 与那国 100 ml 3 本セット (3)
沖縄の友達から差し入れをいただきました。与那国島好きな私のことを知ってのプレゼント、にふぇーでーびる♪生まれて初めてのひとり旅で、初めて与那国島を訪れて早 2 年弱経ちました。今でもたまに シリーズ
豚骨醤油 青ネギラーメン + カレー
哲麺 (豚骨野菜 辛味噌ラーメン + まかない丼) から日を空けずして再び訪れました。3 月も替玉無料が継続するか分からないので、前回のまかない丼や今回の半ライス + カレーかけ放題の様に、全体で食べ
ロース豚丼 十勝仕立て 大盛
ここ最近、手速く食事を済ます場合は松屋が多く、行動半径内には 2 店舗あるにも関わらず、久しく吉野家に入った記憶がありませんでした。ふと思い出したかの様に、ある日最寄り駅そばの吉野家の前を通ると、以前
うまい ! がすごい。クリーミー生サーバー (4)
うまい ! がすごい。クリーミー生サーバー (Part 1) の続きです。1 度にシール 6 枚分まで登録出来るので、コツコツ続けていると、テストで満点という訳ではありませんが、何だかいい気分♪82
ARROWS X F-10D
HTC Desire SoftBank X06HTII から ARROWS X F-10D に切り替えて 5 日程経ちました。Softbank -> docomo への移行 (電話帳) で電話帳
Valid HTML5 Valid CSS3 Another HTML Lint