Linux查看网络流量的脚本(转载)

来源:互联网 发布:工具刀 知乎 编辑:程序博客网 时间:2024/05/17 03:51
  1. # cat stream   
  2.   
  3.   
  4. #! /bin/bash   
  5.   
  6. # Write by Neil.xu qq:37391319 email: xurongzhong@gmail.com   
  7.   
  8. 2008-8-19 we need to monitor streams of LTS channels, so write this script   
  9.   
  10. typeset in in_old dif_in dif_in1 dif_out1   
  11. typeset out out_old dif_out   
  12.   
  13. in_old=$(cat /proc/net/dev | grep eth0 | sed 's=^.*:==' | awk '{ print $1 }' )   
  14. out_old=$(cat /proc/net/dev | grep eth0 | sed 's=^.*:==' | awk '{ print $9 }')   
  15.   
  16. while true  
  17. do  
  18.          sleep 1  
  19.          in=$(cat /proc/net/dev | grep eth0 | sed 's=^.*:==' | awk '{ print $1 }')   
  20.          out=$(cat /proc/net/dev | grep eth0 | sed 's=^.*:==' | awk '{ print $9 }')   
  21.          dif_in=$((in-in_old))   
  22.          dif_in1=$((dif_in * 8 / 1024 / 1024 ))   
  23.          dif_out=$((out-out_old))   
  24.          echo " IN: ${dif_in} bytes OUT: ${dif_out} bytes "  
  25.          dif_out1=$((dif_out * 8 / 1024 / 1024 ))   
  26.          echo "IN: ${dif_in1} mbps OUT: ${dif_out1} mbps"  
  27.          in_old=${in}   
  28.          out_old=${out}   
  29. done  

运行效果:
# ./stream

                                                IN: 349179 bytes OUT: 1363936 bytes
IN: 2 mbps OUT: 10 mbps
                                                IN: 349612 bytes OUT: 1361852 bytes
IN: 2 mbps OUT: 10 mbps
                                                IN: 348684 bytes OUT: 1358952 bytes
IN: 2 mbps OUT: 10 mbps