流量实时监测

#!/bin/bash

ethn=$1

if [ -f $ethn ]
then
rm -f $ethn
fi

touch $ethn

while true
do
RX_pre=$(cat /proc/net/dev | grep $ethn | sed 's/:/ /g' | awk '{print $2}')
TX_pre=$(cat /proc/net/dev | grep $ethn | sed 's/:/ /g' | awk '{print $10}')
sleep 1
RX_next=$(cat /proc/net/dev | grep $ethn | sed 's/:/ /g' | awk '{print $2}')
TX_next=$(cat /proc/net/dev | grep $ethn | sed 's/:/ /g' | awk '{print $10}')

echo -e "\t RX `date +%k:%M:%S` TX \n" >> $ethn

RX=$[$RX_next - $RX_pre]
TX=$[$TX_next - $TX_pre]

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

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

echo -e "$ethn \t $RX $TX \n" >> $ethn

sleep 3

echo "----------------------------"

done

posted @ 2018-03-10 13:57  rocky-2013  阅读(105)  评论(0)    收藏  举报