Linux下使用Shell对网络流量进行监控
#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 循环的基本写法
一些数学表达式的使用
对于输出的一些特殊符号的转义写法
郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。