For more information regarding the security incident at F5, the actions we are taking to address it, and our ongoing efforts to protect our customers, click here.

Show Interface Bit Rate Statistics

Problem this snippet solves:

Here's a way to monitor a specified interface's bits-in and bits-out stats using a custom tmsh script.

Code :

cli script intStats {
proc getFeedback { question } {
    puts -nonewline $question
    flush stdout
    return [gets stdin]
}
proc script::run {} {
    tmsh::clear_screen
    if { $tmsh::argc == 1 } {
        set int [getFeedback "Please enter the interface number (ie, 1.1): "]
    } else {
        set int [lindex $tmsh::argv 1]
    }

    set l1 []
    set l2 []
    set interval [getFeedback "Please enter refresh rate for the stats (in seconds): "]
    set delay [expr $interval * 1000]

    lappend l1 [lindex [lindex [split [tmsh::show net interface $int raw field-fmt] "\n"] 1] 1]
    lappend l1 [lindex [lindex [split [tmsh::show net interface $int raw field-fmt] "\n"] 2] 1]

    while { true } {
        after $delay
        lappend l2 [lindex [lindex [split [tmsh::show net interface $int raw field-fmt] "\n"] 1] 1]
        lappend l2 [lindex [lindex [split [tmsh::show net interface $int raw field-fmt] "\n"] 2] 1]
        tmsh::clear_screen

        set statsIn [expr ([lindex $l2 0] - [lindex $l1 0]) / $interval]
        set statsOut [expr ([lindex $l2 1] - [lindex $l1 1]) / $interval]

        puts "Interface\t\tInbound (bps)\t\tOutbound (bps)"
        puts "$int\t\t\t$statsIn\t\t\t$statsOut"

        set l1 $l2
        unset l2
    }
}
}
Published Mar 10, 2015
Version 1.0
No CommentsBe the first to comment