监控网卡流量

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
# network.sh
# 监控实时网卡流量
# $1 接收所传第一个参数 即要监控的网卡
NIC=$1
while true;do
OLD_IN=`awk '$0~"'$NIC'"{print $2}' /proc/net/dev`
OLD_OUT=`awk '$0~"'$NIC'"{print $10}' /proc/net/dev`
sleep 1
NEW_IN=`awk '$0~"'$NIC'"{print $2}' /proc/net/dev`
NEW_OUT=`awk '$0~"'$NIC'"{print $10}' /proc/net/dev`
clear
IN=$(printf "%.1f%s" "$(($NEW_IN-$OLD_IN))" "B/s")
OUT=$(printf "%.1f%s" "$(($NEW_OUT-$OLD_OUT))" "B/s")
echo " traffic in `date +%k:%M:%S` traffic out "
echo "$NIC $IN $OUT"

done

使用方法:

1
$ sh network.sh eth0