首页 > 系统服务 > 详细

Linux下使用Shell对网络流量进行监控

时间:2015-01-23 20:07:46      阅读:209      评论:0      收藏:0      [点我收藏+]
#input the network name
 
if [ -n "$1" ]; then
    eth_name=$1
else
    eth_name="eth0"
fi
 
send_o=`ifconfig $eth_name | grep bytes | awk '{print $6}' | awk -F : '{print $2}'`
recv_o=`ifconfig $eth_name | grep bytes | awk '{print $2}' | awk -F : '{print $2}'`
 
send_n=$send_o
recv_n=$recv_o
 
i=0
while [ $i -le 100000 ]; do
    send_l=$send_n
    recv_l=$recv_n
    sleep 2
    send_n=`ifconfig $eth_name | grep bytes | awk '{print $6}' | awk -F : '{print $2}'`
    recv_n=`ifconfig $eth_name | grep bytes | awk '{print $2}' | awk -F : '{print $2}'`
    i=`expr $i + 1`
 
    send_r=`expr $send_n - $send_l`
    recv_r=`expr $recv_n - $recv_l`
    total_r=`expr $send_r + $recv_r`
    send_ra=`expr \( $send_n - $send_o \) / $i`
    recv_ra=`expr \( $recv_n - $recv_o \) / $i`
    total_ra=`expr $send_ra + $recv_ra`
    sendn=`ifconfig $eth_name | grep bytes | awk -F \( '{print $3}' | awk -F \) '{print $1}'`
    recvn=`ifconfig $eth_name | grep bytes | awk -F \( '{print $2}' | awk -F \) '{print $1}'`
    clear
    echo "Last second : Send rate: $send_r Bytes/sec Recv rate: $recv_r Bytes/sec Total rate: $total_r Bytes/sec"
    echo "Average value: Send rate: $send_ra Bytes/sec Recv rate: $recv_ra Bytes/sec Total rate: $total_ra Bytes/sec"
    echo "Total traffic after startup: Send traffic: $sendn Recv traffic: $recvn"
done

技术分享

这其中个使用到了,如下常用的shell命令:
变量字符串是否为空
要运行命令需要使用 ·· 作为命令的应用
while 循环的基本写法
一些数学表达式的使用
对于输出的一些特殊符号的转义写法

Linux下使用Shell对网络流量进行监控

原文:http://blog.csdn.net/berguiliu/article/details/43059731

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!