#!/bin/bash
#network
#Mike.Xu
while : ; do
time='date +%m"-"%d" "%k":"%M'
day='date +%m"-"%d'
rx_before='ifconfig eth0|sed -n "8"p|awk '{print $2}'|cut -c7-'
tx_before='ifconfig eth0|sed -n "8"p|awk '{print $6}'|cut -c7-'
sleep 2
rx_after='ifconfig eth0|sed -n "8"p|awk '{print $2}'|cut -c7-'
tx_after='ifconfig eth0|sed -n "8"p|awk '{print $6}'|cut -c7-'
rx_result=$[(rx_after-rx_before)/256]
tx_result=$[(tx_after-tx_before)/256]
echo "$time Now_In_Speed: "$rx_result"kbps Now_OUt_Speed: "$tx_result"kbps"
sleep 2
done
2. 新看到的一则SHELL实现同样的功能
#!/bin/bash
function usage
{
echo "use ./test_net.sh ethX time"
echo "$1 is you network interface "
echo "$2 is the last time!"
echo "for example: ./test_net.sh eth0 2"
exit 100
}
if [ $# -lt 2 -o $# -gt 2 ];then
usage
fi
eth=$1
time=$2
old_inbw=`cat /proc/net/dev | grep $eth | awk -F'[: ]+' '{print $3}'`
old_outbw=`cat /proc/net/dev | grep $eth | awk -F'[: ]+' '{print $11}'`
while true
do
sleep $time
new_inbw=`cat /proc/net/dev | grep $eth | awk -F'[: ]+' '{print $3}'`
new_outbw=`cat /proc/net/dev | grep $eth | awk -F'[: ]+' '{print $11}'`
inbw=`expr $((($new_inbw-$old_inbw)/$time))`
outbw=`expr $((($new_outbw-$old_outbw)/$time))`
echo "$eth: IN:$inbw bytes OUT:$outbw bytes"
old_inbw=${new_inbw}
old_outbw=${new_outbw}
done
exit 0
运行效果:
[root@bogon shell]# ./test_net.sh eth0 2
eth0: IN:3097 bytes OUT:50374 bytes
eth0: IN:3158 bytes OUT:44202 bytes
eth0: IN:2587 bytes OUT:58932 bytes
eth0: IN:2104 bytes OUT:51543 bytes