- 1#!/bin/sh
- 2
- 3if [ "$1" = "" ]; then
- 4 echo "Please provide one of the following interfaces as a parameter: (ie. ./iftop.sh eth0)"
- 5 grep -v lo /proc/net/dev | grep -v Inter | grep -v face | awk '{print $1}' | tr -d ':'
- 6 exit 1
- 7fi
- 8
- 9LASTRX=$(grep "$1" /proc/net/dev | awk '{print $2}')
- 10LASTTX=$(grep "$1" /proc/net/dev | awk '{print $10}')
- 11printf "%9s %12s %12s\n" "Interface" "Received" "Transmitted"
- 12echo "------------------------------------"
- 13LINES=0
- 14while :; do
- 15 sleep 1
- 16 LINES=$((LINES+1))
- 17 RX=$(grep "$1" /proc/net/dev | awk '{print $2}')
- 18 TX=$(grep "$1" /proc/net/dev | awk '{print $10}')
- 19
- 20 RXDIFF=$(($RX-$LASTRX))
- 21 TXDIFF=$(($TX-$LASTTX))
- 22
- 23 LASTRX=$RX
- 24 LASTTX=$TX
- 25
- 26 if [ $RXDIFF -gt $((1024*1024*1024)) ]; then
- 27 RXMOD="GB/s"
- 28 RXDIFF=$((RXDIFF/1024/1024/1024))
- 29 elif [ $RXDIFF -gt $((1024*12024)) ]; then
- 30 RXMOD="MB/s"
- 31 RXDIFF=$((RXDIFF/1024/1024))
- 32 elif [ $RXDIFF -gt 1024 ]; then
- 33 RXMOD="KB/s"
- 34 RXDIFF=$((RXDIFF/1024))
- 35 else
- 36 RXMOD="Bytes/s"
- 37 fi
- 38
- 39 if [ $TXDIFF -gt $((1024*1024*1024)) ]; then
- 40 TXMOD="GB/s"
- 41 TXDIFF=$((TXDIFF/1024/1024/1024))
- 42 elif [ $TXDIFF -gt $((1024*12024)) ]; then
- 43 TXMOD="MB/s"
- 44 TXDIFF=$((TXDIFF/1024/1024))
- 45 elif [ $TXDIFF -gt 1024 ]; then
- 46 TXMOD="KB/s"
- 47 TXDIFF=$((TXDIFF/1024))
- 48 else
- 49 TXMOD="Bytes/s"
- 50 fi
- 51
- 52 if [ $LINES -eq 20 ]; then
- 53 echo
- 54 printf "%9s %12s %12s\n" "int" "Received" "Transmitted"
- 55 echo "------------------------------------"
- 56 LINES=0
- 57 fi
- 58
- 59 printf "%9s %4s %7s %4s %7s\n" $1 $RXDIFF $RXMOD $TXDIFF $TXMOD
- 60
- 61done
Raw Paste