如何使用内置 Linux 工具从命令行获取当前带宽使用情况?

如何使用内置 Linux 工具从命令行获取当前带宽使用情况?

我正在寻找一种获取 Linux 机器上当前总带宽使用情况的好方法。我尝试过iftop、,nethogs但与系统监视器相比,它们没有显示实际带宽使用情况;它们不适合我的项目需求。我想要一个我执行的命令,它返回当前上传和下载的使用情况,而不返回其他任何内容。

我还想使用原生 Linux 工具来实现这一点,而无需安装任何东西。事实上,我正在制作一个监控应用程序,我希望它能够监控计算机,而无需在用户想要监控的每台计算机上安装任何东西,那就太好了!

答案1

使用iptraf-http://www.linuxcommand.org/man_pages/iptraf8.html

它是一个基于 ncurses 的命令行实用程序,能够为您提供机器上所有接口的统计信息 - 包括带宽使用情况。

答案2

您可以使用很多工具:,,,,nload...如果您只想获取其输出的特定部分(例如,上传和下载),我很确定您可以bmon//输出以使其为您工作。iftopvnstatifstatgrepcutawk

18 个用于监控 Linux 服务器上网络带宽的命令

答案3

sysstat 也收集网络状态。如果你执行“man sar”,你会看到所有可以保留历史数据的资源。

通过在 cron 中输入命令“/usr/lib/sa/sa1”(或 /usr/lib64/sa/sa1)进行设置,并在每次需要数据点时运行它(例如每 5 分钟)

然后您可以使用“sar”查看您的数据。默认是今天。您还可以查看最多 30 天的历史数据。您还可以存档数据,以便永久保存(每天的数据约为 8mb)。

对于网络,您可以使用“sar -n”

非常棒的工具:)

一个例子:

 testlinux:~ # sar -n DEV | head -10
 Linux 2.6.16.60-0.21-default (pCITFileSvr01)    11/07/10

 00:00:01        IFACE   rxpck/s   txpck/s    rxkB/s    txkB/s   rxcmp/s   txcmp/s  rxmcst/s
 00:05:01           lo      0.00      0.00      0.00      0.00      0.00      0.00      0.00
 00:05:01         eth0      9.95      0.12      1.42      0.02      0.00      0.00      0.00
 00:10:01           lo      0.00      0.00      0.00      0.00      0.00      0.00      0.00
 00:10:01         eth0     10.20      0.04      1.44      0.00      0.00      0.00      0.00
 00:15:01           lo      0.00      0.00      0.00      0.00      0.00       0.00      0.00
 00:15:01         eth0     10.32      0.12      1.50      0.02      0.00      0.00      0.00
 00:20:01           lo      0.00      0.00      0.00      0.00      0.00      0.00      0.00
 testlinux:~ #

答案4

好吧,我做了一些研究后发现简而言之,它用于netstat总结网络使用情况。这是我修改后的命令

netstat -e -n -i | grep wlan0  -A 5 | grep 'RX packets' |  tail -1

输出示例:-

RX packets 76639  bytes 73706194 (70.2 MiB)

更改wlan0您的卡接口名称,您可以过滤该命令的更多输出,例如

netstat -e -n -i | grep wlan0  -A 5 | grep 'RX packets' |  tail -1 | awk '{print $6$7}'

相关内容