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

生姜焼き定食
My Select "日本一シリーズ" 第 4 弾で真打ち登場。日本一美味しい黒豚餃子 よりも前から、それこそ確実に 20 年近く通い続けている とちぎや をご紹介。一時期お茶の水
Transcend JetFlash 530 64GB USB メモリ
VAIO Fit 13A (カスタマイズ – タッチパッド) の続きです。環境調整中に色々つまずいていますが、VAIO に問題がある訳ではなく Windows 8.1 Pro 固有の問題だ
わかめうどん (冷 + 野菜天盛)
沖縄出張から戻って、久しぶりに丸香 (まるか) のうどんが食べたくなりました。4 月以降ほぼ来た覚えがないので、まずは春先から復活するぶっかけ (冷) で私も復活します。半年ぶりですが、記憶にある味と
らーめん 中 (ほうれん草増 + トッピング きゃべつ)
綾瀬に住んで 7 年以上になりますが、自転車で 5 分程度の距離にある 横浜らーめん武蔵家 はとなりが 松屋 ということもあって存在自体は知っていましたし、3 回程度は入ったことがありました。最後に食
Rack Sample 0
これは、Drive Network サービスを収容しているデータセンターのあるラックの一部です。白ケーブルはグローバル IP アドレス ネットワーク青はプライベート IP アドレス ネットワークライト
ボンディ 通信販売 パッケージ (2)
欧風カレー ボンディ (チキンカレー レシピ) で東京出張に来たスタッフが、ボンディを恋しがっている話を小耳に挟みました。一方、ホームページ 欧風カレー ボンディ で通信販売をしていることも気が付いて
中本鮮魚店 (4)
久高島 (No. 5 – 久高船待合所) の続きです。久しぶりに久高島を訪れてエネルギーをもらった様な感じがしました。本島南部に戻ってから特に予定は決めていませんでしたが、天ぷらで有名な
ESXi 5.1 Install (3)
VMware ESXi 5.1 Install (Part 1) の "ISO イメージ読み込み" のステップで、何度かエラーが発生しました。OpenVPN -> radse
味噌らーめん + 青のり + 柚子七味
去年 味噌の章 (味噌らーめん) に驚いてもう 1 年。寒くなってきたのでほぼ 1 年ぶりに訪れてみました。前回もおそらく掲示されていたのでしょうが、今日はふと目に留まりました。ふと右手前を見ると青の
クリスマスツリー 2012
銀座・有楽町は最低でも 1 ヶ月に 2, 3 回は訪れるスポットです。クリスマス付近になると恒例の 「ミキモト ジャンボクリスマスツリー」点灯中です。カメラも解像度もまちまちなので統一感がありませんが
Valid HTML5 Valid CSS3 Another HTML Lint