EXPECT - cisco show fex mac-address table.expect

From IT-Arts.net
Revision as of 06:41, 29 June 2026 by Admin (talk | contribs)


Return to Wiki Index

#!/usr/bin/expect -f

 

#

# USAGE:

# ./cisco_show_interfaces_fex_mac-address_table.expect <IP> <USER> <PASSWORD> '<FEX_ID1 FEX_ID2 FEX_ID3...>'

#

# Example:

# ./cisco_show_interfaces_fex_mac-address_table.expect 1.2.3.4 ADMIN PASSWORD "101 102 103"

#

 

# DISABLE OUTPUT BUFFERING

fconfigure stdout -buffering none

 

set timeout 10

 

set IP [lindex $argv 0]

set USER [lindex $argv 1]

set PASSWORD [lindex $argv 2]

set FEX_ID_LIST [lindex $argv 3]

 

# puts "FEX_ID_LIST : $FEX_ID_LIST"

 

# SSH CONNECTION

spawn ssh $USER@$IP

 

expect "*assword: "

send "$PASSWORD\r"

expect "#"

 

# WAIT FOR SWITCH PROMPT

expect "#"

 

# PROCESS EACH FEX

foreach FEX $FEX_ID_LIST {

 

    puts ""

    puts "===== FEX : $FEX ====="

 

    # GET CONNECTED INTERFACES

    send "show interface status fex $FEX | include connected\r"

    expect "#"

 

    set RAW_UP_INTERFACE_LIST $expect_out(buffer)

 

    # BUILD THE INTERFACE LIST

    set UP_INTERFACE_LIST {}

 

    foreach line [split $RAW_UP_INTERFACE_LIST "\n"] {

 

        # REMOVE CARRIAGE RETURNS

        regsub -all {\r} $line "" line

 

        # MATCH INTERFACE NAME AT BEGINNING OF LINE

        if {[regexp {^(Eth[0-9/]+)} $line -> iface]} {

            lappend UP_INTERFACE_LIST $iface

        }

    }

 

    puts "Interfaces found:"

    puts $UP_INTERFACE_LIST

 

    # QUERY MAC ADDRESSES ON EACH INTERFACE

    foreach INTERFACE $UP_INTERFACE_LIST {

 

                        puts ""

                        puts "===== show mac address-table interface $INTERFACE ====="

 

        send "show mac address-table interface $INTERFACE\r"

        expect "#"

                       

                        # DON'T SPAM THE SWITCH

        sleep 1

 

        # PRINT COMMAND OUTPUT

        # puts $expect_out(buffer)

 

    }

}

 

# EXIT

send "exit\r"

expect eof

 

exit 0

Return to Wiki Index