Linux网卡流量统计工具

简介: flux.zip(下载上传后,记得chmod +x flux.sh增加可执行权限) #!/bin/sh # 流量统计工具 # 可带一个参数:网卡名,如eth0或eth1等 ...
img_e25d4fb2f8de1caf41a735ec53088516.pngflux.zip(下载上传后,记得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


相关文章
|
2月前
|
Linux
在Linux中,列出几种常见打包工具并写相应解压缩参数。
在Linux中,列出几种常见打包工具并写相应解压缩参数。
|
2月前
|
监控 网络协议 Linux
在Linux中,如何查看某个网卡是否连接着交换机?
在Linux中,如何查看某个网卡是否连接着交换机?
|
8天前
|
Linux Shell
10-9|linux上统计文件中单词次数
10-9|linux上统计文件中单词次数
|
10天前
|
人工智能 监控 Shell
常用的 55 个 Linux Shell 脚本(包括基础案例、文件操作、实用工具、图形化、sed、gawk)
这篇文章提供了55个常用的Linux Shell脚本实例,涵盖基础案例、文件操作、实用工具、图形化界面及sed、gawk的使用。
26 2
|
2月前
|
Linux 开发工具
Linux查看已经安装软件的版本,安装软件的路径,以及dpkg、aptitude、apt-get、apt工具的使用
Linux查看已经安装软件的版本,安装软件的路径,以及dpkg、aptitude、apt-get、apt工具的使用
33 2
Linux查看已经安装软件的版本,安装软件的路径,以及dpkg、aptitude、apt-get、apt工具的使用
|
1月前
|
监控 安全 Linux
如何利用Kali Linux进行网站渗透测试:最常用工具详解
如何利用Kali Linux进行网站渗透测试:最常用工具详解
70 6
|
10天前
|
Linux
linux之centos安装dataease数据报表工具
linux之centos安装dataease数据报表工具
|
1月前
|
安全 Linux 测试技术
Kali Linux预装的自动化渗透测试工具
Kali Linux预装的自动化渗透测试工具
43 2
|
2月前
|
存储 缓存 监控
Linux性能分析工具-perf并生成火焰图
Linux性能分析工具-perf并生成火焰图
|
1月前
|
Ubuntu Linux
用crash工具学习Linux内核 —— 查看cgroup_roots
用crash工具学习Linux内核 —— 查看cgroup_roots
下一篇
无影云桌面