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


相关文章
|
安全 Linux Shell
四、Linux核心工具:Vim, 文件链接与SSH
要想在Linux世界里游刃有余,光会“走路”还不够,还得配上几样“高级装备”。首先是Vim编辑器,它像一把瑞士军刀,让你能在命令行里高效地修改文件。然后要懂“软硬链接”,软链接像个快捷方式,硬链接则是给文件起了个别名。最后,SSH是你的“传送门”,不仅能让你安全地远程登录服务器,还能用scp轻松传输文件,设置好密钥更能实现免-密登录,极大提升效率。
693 5
|
Linux 开发工具
7种比较Linux中文本文件的最佳工具
7种比较Linux中文本文件的最佳工具
1018 0
7种比较Linux中文本文件的最佳工具
|
Unix Linux 程序员
Linux文本搜索工具grep命令使用指南
以上就是对Linux环境下强大工具 `grep` 的基础到进阶功能介绍。它不仅能够执行简单文字查询任务还能够处理复杂文字处理任务,并且支持强大而灵活地正则表达规范来增加查询精度与效率。无论您是程序员、数据分析师还是系统管理员,在日常工作中熟练运用该命令都将极大提升您处理和分析数据效率。
958 16
|
安全 Linux iOS开发
SonarQube Server 2025 Release 5 (macOS, Linux, Windows) - 代码质量、安全与静态分析工具
SonarQube Server 2025 Release 5 (macOS, Linux, Windows) - 代码质量、安全与静态分析工具
464 0
SonarQube Server 2025 Release 5 (macOS, Linux, Windows) - 代码质量、安全与静态分析工具
|
缓存 监控 Linux
Linux系统性能调优技巧和相关工具
Linux 作为一种应用应展和系统服务的优选操作系统,在处理性能和端到端点评估上持有出色表现。但是,在处理进程或系统处于低效状态时,性能调优就显得十分重要。本文将探讨一些 Linux 系统性能调优的常用技巧,并介绍相关工具
382 1
Linux系统性能调优技巧和相关工具
|
网络协议 Unix Linux
深入解析:Linux网络配置工具ifconfig与ip命令的全面对比
虽然 `ifconfig`作为一个经典的网络配置工具,简单易用,但其功能已经不能满足现代网络配置的需求。相比之下,`ip`命令不仅功能全面,而且提供了一致且简洁的语法,适用于各种网络配置场景。因此,在实际使用中,推荐逐步过渡到 `ip`命令,以更好地适应现代网络管理需求。
1128 113
|
Linux 数据安全/隐私保护 iOS开发
推荐Linux环境下效能优良的双向文件同步工具
综合上述条件,对于Linux环境下的双向文件同步需求,Unison 和 Syncthing 是两个非常出色的选择。它们都有良好的社区支持和文档资源,适用于不同规模的环境,从个人使用到商业部署。Unison 特别适合那些需要手动干预同步过程、需要处理文件冲突解决的场景。而 Syncthing 更加现代化,适合需要自动、实时的数据同步与备份的环境。对于选择哪一个,这将取决于个人的使用场景和具体需求。
1439 16
|
Ubuntu 搜索推荐 Linux
详解Ubuntu的strings与grep命令:Linux开发的实用工具。
这就是Ubuntu中的strings和grep命令,透明且强大。我希望你喜欢这个神奇的世界,并能在你的Linux开发旅程上,通过它们找到你的方向。记住,你的电脑是你的舞台,在上面你可以做任何你想做的事,只要你敢于尝试。
660 32
|
数据采集 编解码 运维
一文讲完说懂 WowKey -- WowKey 是一款 Linux 类设备的命令行(CLT)运维工具
WowKey 是一款面向 Linux 类设备的命令行运维工具,支持自动登录、批量执行及标准化维护,适用于企业、团队或个人管理多台设备,显著提升运维效率与质量。