#!/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: