您的位置:首页 > 运维架构 > Shell

Shell脚本实时查看网卡流量

2013-06-26 19:45 344 查看
原理 :proc/net/dev 文件保存了网卡总流量信息,通过间隔一段间隔,将 入网卡 与 出记录 加起来。减去之前就得到实际速率

脚本如下

#!/bin/bash

if [ $# -lt 1 ]
then
echo "usage eth0"
exit 1
fi
while true
do
eth=$1
RXpre=$(cat /proc/net/dev | grep $eth | tr : " " | awk '{print $2}')
TXpre=$(cat /proc/net/dev | grep $eth | tr : " " | awk '{print $10}')
sleep 1
RXnext=$(cat /proc/net/dev | grep $eth | tr : " " | awk '{print $2}')
TXnext=$(cat /proc/net/dev | grep $eth | tr : " " | awk '{print $10}')
clear
echo  -e  "\t RX `date +%k:%M:%S` TX"
RX=$((${RXnext}-${RXpre}))
TX=$((${TXnext}-${TXpre}))

if [[ $RX -lt 1024 ]];then
RX="${RX} B/s"
elif [[ $RX -gt 1048576 ]];then
RX=$(echo $RX | awk '{print $1/1048576*8 "Mbps/s"}')
else
RX=$(echo $RX | awk '{print $1/1024*8 "Kbps/s"}')
fi

if [[ $TX -lt 1024 ]];then
TX="${TX} B/s"
elif [[ $TX -gt 1048576 ]];then
TX=$(echo $TX | awk '{print $1/1048576*8 "Mbps/s"}')
else
TX=$(echo $TX | awk '{print $1/1024*8 "Kbps/s"}')
fi

echo -e "$eth \t $RX   $TX "
done


当然也可直接通过脚本读取ifconfig 里面的内容取得 网卡流量 
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  Linux