首页 运维 网络学院 查看内容

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

2015-1-23 23:17 813 0

摘要: [plain] view plaincopyprint?#input the network name     ...
关键词: nbsp recv send print bytes awk ifconfig name total eth

[plain] view plaincopyprint?#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 循环的基本写法一些数学表达式的使用对于输出的一些特殊符号的转义写法
声明:文章版权归原作者所有 部分文章转自互联网 如有侵权请联系 [邮箱地址] 删除

路过

雷人

握手

鲜花

鸡蛋

最新评论

返回顶部