博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Linux网卡流量统计工具
阅读量:6004 次
发布时间:2019-06-20

本文共 2417 字,大约阅读时间需要 8 分钟。

(下载上传后,记得chmod +x flux.sh增加可执行权限)
  1. #!/bin/sh
  2. # 流量统计工具
  3. # 可带一个参数:网卡名,如eth0或eth1等
  4. # 输出格式:统计时间,入流量(Kbps),入流量(Mbps),出流量(Kbps),出流量(Mbps)
  5. # Please edit the followings
  6. EthXname=eth0 # Interface name
  7. StatFreq=2 # Seconds
  8. if test $# -eq 1; then
  9. EthXname=$1
  10. fi
  11. echo "Destination: $EthXname"
  12. # Don't change
  13. influx_kbps=0
  14. outflux_kbps=0
  15. influx_mbps=0
  16. outflux_mbps=0
  17. unsigned_long_max=4294967295
  18. # 检查是否存在EthXname
  19. Ethname=`cat /proc/net/dev|grep $EthXname|awk -F"[: ]+" '{ printf("%s", $2); }'`
  20. if test "$EthXname" != "$Ethname"; then
  21. echo "Please set EthXname first before running"
  22. echo "Usage: flux.sh ethX"
  23. echo "Example: flux.sh eth0"
  24. exit 1
  25. fi
  26. # 进一步检查是否存在EthXname
  27. netstat -ie|grep $EthXname> /dev/null 2>&1
  28. if test $? -ne 0; then
  29. echo "Please set EthXname first before running"
  30. echo "Usage: flux.sh ethX"
  31. echo "Example: flux.sh eth0"
  32. exit 1
  33. fi
  34. # 初始化
  35. influx1_byte=`cat /proc/net/dev|grep $EthXname|awk -F"[: ]+" '{ printf("%d", $3); }'`
  36. outflux1_byte=`cat /proc/net/dev|grep $EthXname|awk -F"[: ]+" '{ printf("%d", $11); }'`
  37. echo "Date,IN-Kbps,IN-Mbps,OUT-Kbps,OUT-Mbps"
  38. while test 2 -gt 1;
  39. do
  40. sleep $StatFreq
  41. #influx2_byte=`cat /proc/net/dev|grep $EthXname|awk -F"[: ]+" '{ printf("%d", $3); }'`
  42. #outflux2_byte=`cat /proc/net/dev|grep $EthXname|awk -F"[: ]+" '{ printf("%d", $11); }'`
  43. inout_bytes=`awk -F"[: ]+" /$EthXname/'{ printf("%s %s", $3, $11) }' /proc/net/dev`
  44. inout_bytes_array=($inout_bytes)
  45. influx2_byte=${inout_bytes_array[0]}
  46. outflux2_byte=${inout_bytes_array[1]}
  47. dd=`date +'%Y-%m-%d/%H:%M:%S'`
  48. if test $influx2_byte -ge $influx1_byte; then
  49. let influx_byte=$influx2_byte-$influx1_byte
  50. else
  51. let influx_byte=$unsigned_long_max-$influx1_byte
  52. let influx_byte=$influx_byte+$influx2_byte
  53. fi
  54. if test $outflux2_byte -ge $outflux1_byte; then
  55. let outflux_byte=$outflux2_byte-$outflux1_byte
  56. else
  57. let outflux_byte=$unsigned_long_max-$outflux1_byte
  58. let outflux_byte=$outflux_byte+$outflux2_byte
  59. fi
  60. let influx_byte=$influx_byte/$StatFreq
  61. let outflux_byte=$outflux_byte/$StatFreq
  62. # TO bps
  63. let influx_bps=$influx_byte*8
  64. let outflux_bps=$outflux_byte*8
  65. # To kbps
  66. let influx_kbps=$influx_bps/1024
  67. let outflux_kbps=$outflux_bps/1024
  68. # To mbps
  69. let influx_mbps=$influx_kbps/1024
  70. let outflux_mbps=$outflux_kbps/1024
  71. # SHOW on screen
  72. # COLUMN: Date,IN-Kbps,IN-Mbps,OUT-Kbps,OUT-Mbps
  73. echo "$dd,${influx_kbps}Kbps,${influx_mbps}Mbps,${outflux_kbps}Kbps,${outflux_mbps}Mbps"
  74. let influx1_byte=influx2_byte
  75. let outflux1_byte=outflux2_byte
  76. done

转载地址:http://jepmx.baihongyu.com/

你可能感兴趣的文章
推荐系统中常用算法 以及优点缺点对比
查看>>
cocos2d-x v3.2环境配置(现在3.x版本号可以配置该)
查看>>
Go语言标准库之JSON编解码
查看>>
linux上架设l2tp+ipsec ***服务器
查看>>
node.js中使用http模块创建服务器和客户端
查看>>
面向对象编程-何为对象
查看>>
2015 多校联赛 ——HDU5334(构造)
查看>>
mysql字符集
查看>>
DP_1d1d诗人小G
查看>>
非、半、结构化数据学习【转载】
查看>>
avalon加载一闪而过现象
查看>>
Python学习第二天-编写购物车
查看>>
BigTable——针对结构型数据的一种分布式存储系统
查看>>
python调用c/c++写的dll
查看>>
r语言ggplot2误差棒图快速指南
查看>>
python之处理异常
查看>>
遍历form表单里面的表单元素,取其value
查看>>
面试110道题
查看>>
python 08 文件操作
查看>>
强势解决:windows 不能在本地计算机中起动Tomcat参考特定错误代码1
查看>>