diff options
Diffstat (limited to 'scripts/show_interfaces_summary')
-rwxr-xr-x | scripts/show_interfaces_summary | 55 |
1 files changed, 55 insertions, 0 deletions
diff --git a/scripts/show_interfaces_summary b/scripts/show_interfaces_summary new file mode 100755 index 0000000..020ae2c --- /dev/null +++ b/scripts/show_interfaces_summary @@ -0,0 +1,55 @@ +#!/bin/bash +# **** License **** +# Version: VPL 1.0 +# +# The contents of this file are subject to the Vyatta Public License +# Version 1.0 ("License"); you may not use this file except in +# compliance with the License. You may obtain a copy of the License at +# http://www.vyatta.com/vpl +# +# Software distributed under the License is distributed on an "AS IS" +# basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See +# the License for the specific language governing rights and limitations +# under the License. +# +# This code was originally developed by Vyatta, Inc. +# Portions created by Vyatta are Copyright (C) 2007 Vyatta, Inc. +# All Rights Reserved. +# +# Author: Tom Grennan +# Date: 2007 +# +# **** End License **** + +shopt -s extglob +shopt -s nullglob + +declare -a full_itfs=( /sys/class/net/+(eth|vmnet|lo|sit|wan)* ) +declare -i rx_bytes rx_packets rx_errors rx_dropped rx_over_errors multicast +declare -i tx_bytes tx_packets tx_errors tx_dropped tx_carrier_errors collisions + +printf '%10s %10s %10s %10s %10s\n' \ + interface packets bytes errors drops + +for itf in ${full_itfs[@]##*/} ; do + for stat in \ + rx_bytes rx_packets rx_errors rx_dropped rx_over_errors multicast \ + tx_bytes tx_packets tx_errors tx_dropped tx_carrier_errors collisions + do + full_stat=/sys/class/net/${itf}/statistics/${stat} + if [ -r $full_stat ] ; then + eval $stat=$(cat $full_stat) + else + eval $stat=0 + fi + done + printf '%10s rx %10d %10d %10d %10d\n' \ + $itf $rx_packets $rx_bytes $rx_errors $rx_dropped + printf '%10s tx %10d %10d %10d %10d\n' \ + '' $tx_packets $tx_bytes $tx_errors $tx_dropped +done + +# Local Variables: +# mode: shell-script +# sh-indentation: 4 +# End: |