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

すし銚子丸 船橋店
千葉県船橋市に 15 年住んだ後、足立区綾瀬に 8 年程住んでいますが、そのどちらにも自宅近所に すし銚子丸 (千葉・東京・埼玉・神奈川のお寿司屋さん) があります。船橋の時は後半 5 年くらいで初め
おかずセレクト (2013/04/15, 左半分)
ミニストップ (おかずセレクト No. 1) の続きです。03/18, 03/19 に続けて 03/22 も訪れました。一旦凝り始めるととことん突き詰める AB 型全開です。14 時過ぎに訪れましたが
ARROWS X F-10D
スマートフォンを使い始めて 2 年弱ですが、HTC Desire SoftBank X06HTII を使っていました。スマートフォンとしてはやや古めですが、入力が少ししにくい (指が大きい ?) 以外
ワイルドハンバーグ 300g (1)
いきなり ! ステーキ (ワイルドステーキ 300g) でデビューした いきなり ! ステーキ で、今度はランチメニューのワイルドハンバーグを試すべく再び小川町店を訪れましたが、まだ 13 時過ぎで何
野菜炒め + タコハッシュ (5)
久しぶりに自分で作った野菜炒めが食べたくなり、ふとキッチンのストックを見ると、先日差し入れでいただいた 【オキハム】タコハッシュ (ロングタコス) 75g と目が合いました。コンビーフハッシュとの組み
国道 58 号
4, 5 年程前の沖縄出張時に 国道 58 号 は "ごーぱち" と呼ぶか "ごっぱち" と呼ぶかで本島のどこ出身かが大体分かると聞いた話をふと思い出しました。
タコライス 材料 (S&B タコスシーズニング)
沖縄で最後にタコライスを食べたのが 沖縄本島 (No. 19 – タコス屋 <Tacos-ya>) で 3 ヶ月前になります。その間、東京の沖縄料理店でも 2 回程食べましたが
iPod nano (2)
iPod なの (そうなの) の続きです。iTunes は起動しておきます。付属の Lightning – USB ケーブル で PC と接続すると、iTunes の画面が変わります。&q
ガーリックチャーハン + コンビーフハッシュ (1)
野菜炒め + コンビーフハッシュ に続いて、銀座わしたショップ 2014/07/03 (コンビーフハッシュ) で入手したコンビーフハッシュで何を作ろうか迷っていました。ちゃんぽんも考えて粉末の出汁まで
クリーミー生サーバー (6)
うまい ! がすごい。クリーミー生サーバー (Part 2) の続きです。正確には覚えていませんが、キャンペーン終了翌日の 2013/08/26 から 1 ヶ月程経過してようやく届きました。中々の大ぶ
Valid HTML5 Valid CSS3 Another HTML Lint