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

Cisco config backup Tool

2013/03/28 07:35

現在 Drive Network では L2, L3 スイッチが 20 台以上が稼働しています。過去 10 年程 Cisco Catalyst シリーズを使用して来て物理障害は一度もありませんが、設定内容のバックアップは設定変更毎に採集しています。

tftp を用いる方法等様々ありますが、私は Net::Telnet::Cisco を用いた Perl のプログラムが最もシンプルだと感じました。

./get.pl name とするだけで、show runnning-config, show vlan, show interfaces status の結果をファイルに出力します。スイッチ間での設定内容の整合性の確認等でも出力したファイルを操作した方が効率的です。

#!/usr/bin/perl -w
#
# get.pl
#

#// -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
#// use Module
#// -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=

use strict;

use Net::Telnet::Cisco;

#// -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
#// Controller
#// -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=

    my $target = $ARGV[0];

    #// ----------------------------------------------------------
    #// Item Set
    #// ----------------------------------------------------------

    my $pass_vt = 'password0';   #// login
    my $pass_en = 'password';    #// enable

    my $list = {
        'sw00' => '192.168.20.10',
        'sw01' => '192.168.20.11',
    };

    #// ----------------------------------------------------------
    #// 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);

        $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

揚げずにからあげ (2)
先日同じくひとり暮らしの友達から 揚げずにからあげ について情報をいただき、まずは王道の鶏もも肉で試しました。クリスピー感とガーリック風味の美味しさに驚きましたが、もう一度鶏肉で試す前に"さ
ハッシュ・ド・ビーフ 材料
ここ最近は年末年始の長期休暇の度に作っています。2012 – 2013 年にかけても作って味わいました。facebook では是非食べたいと好評でしたし、いつか本当に食べていただきたいです
ザ・プレミアム・モルツ (3)
ザ・プレミアム・モルツ <初摘みホップ> の売り切れ後、気が付くと ザ・プレミアム・モルツ <初仕込> が並んでいました。普段飲んでいる ザ・プレミアム・モルツ とデザインが似
Gala 青い海 (1)
2 年程前の 2 週間コースの出張の際、間の土・日で Gala 青い海 に行きました。スタッフの話では、景色を見ながらまったりするのがいい、と聞いて行きましたが、本来は塩や琉球ガラスの制作体験が出来る
欧風カレー ガヴィアル
食べログ 秋葉原・神田・水道橋 カレー の総合ランキングで、ボンディと同じくらい気になっていたお店の 1 つに 欧風カレー ガヴィアル があります。今日は 15:00 頃のランチとなったので、本当はラ
味噌らーめん + 青のり + 柚子七味
去年 味噌の章 (味噌らーめん) に驚いてもう 1 年。寒くなってきたのでほぼ 1 年ぶりに訪れてみました。前回もおそらく掲示されていたのでしょうが、今日はふと目に留まりました。ふと右手前を見ると青の
カーフェリー (13)
沖縄本島 (No. 2 – 本部港 Part 1) の続きです。車も人も同じ入口から入りますが、歩道 ? は入って程なくすると左側に階段があり、客席へはそこを上ります。おぉ、新幹線と飛行機
松屋銀座 2013/03
有楽町から銀座に向けて移動中に、松屋銀座 の外観が気になることがあります。常時ではありませんが、現在の白くて落ち着く外観に突如広告の様なイメージがポップアップされているのです。これは偶然昨年夏に見掛け
デミグラスハンバーグと海老フライ定食
世間はクリスマスイブでチキン真っ盛りですが、この日のランチはなぜか無性にハンバーグが食べたくなりました。ザ・ハンバーグ (300g) も考えましたが、沖縄出張 (No. 24 – きょんた
魚河岸フライ定食 (2014/01/14)
記事では 築地食堂 源ちゃん (海老かき揚げとお刺身定食) から 1 ヵ月空いていますが、3 日後にまた訪れています。この日は 2013 年最後の出勤日で、取引先の方がご挨拶に来た後、ランチに同行いた
Valid HTML5 Valid CSS3 Another HTML Lint