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

Rack Sample 0
ここ数年、"理想のファイルシステムとは何か" というテーマで考え続けています。機器単体では RAID (Redundant Arrays of Independent Disks)
エクストラコールド BAR (1 DRINK TIME)
エクストラコールド BAR には、出来た年に長蛇の列に並んで行きました。一番搾り FROZEN GARDEN で少し火がついたので、久しぶりに訪れてみました。普通の時間に行っても面白くないので、今回は
41B0208 (3)
Drive Network Rack Gallery 2012 (Part 2) です。hp DL360 G5 モデルの背面です。オレンジ色のケーブルは Fibre Channel 用の光ケーブルで、
サイゼリア ランチメニュー (1)
都内では有名なカジュアルなイタリアンレストラン サイゼリヤ は、最低月に 1 度は土曜日に訪れているため、平日のランチにまで訪れることは今までありませんでした。が、先日ふとオフィスのそばにある神田小川
名物チャントン
ここ最近、銀座でランチする時に気になっているお店があります。いさば (日本一美味しいサバの塩焼き) はすでに定番ですが、銀座 いし井 (中華せいろ) との間に挟まれている 元祖 博多チャンポン ハカタ
ガーリックチャーハン + コンビーフハッシュ (1)
野菜炒め + コンビーフハッシュ に続いて、銀座わしたショップ 2014/07/03 (コンビーフハッシュ) で入手したコンビーフハッシュで何を作ろうか迷っていました。ちゃんぽんも考えて粉末の出汁まで
スミノフ フローズン シトラスダイキリ (3)
駅前のスーパーで、ある日 "スミノフ フローズン シトラスダイキリ" を見つけました。"スミノフ® フローズン シトラスダイキリ / ピニャコラーダ"
カジキの刺身
与那国島 (No. 9 – Dr. コトー診療所 Part 3) の続きです。念願の Dr. コトー診療所を満喫して 15:00 過ぎ。与那国島 (No. 1 ? 出発) の通りほぼ寝ずに
瀬底ビーチ (伊江島)
07/14 (日) は、すでに 2 ヶ月近く前から計画していた北部ドライブでした。本島から行ける離島でも伊江島は行ってみたい島 No. 1 でしたし、いつか行こうと構想して早 2 年程。ようやくその機
エチオピア テレビ取材 (2015/05/15)
カリーライス専門店 エチオピア 本店 (No. 14 – 辛さ 70 倍メドレー 2) で全メニューを辛さ 70 倍で制覇した後は、1 ヶ月に 1, 2 度訪れますがやはり辛さ 70 倍で
Valid HTML5 Valid CSS3 Another HTML Lint