我想获得 TX 和 RX 的总量,以了解服务器正在接收或传输的数据量。
用这个命令ip -s link
我得到这个结果
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN mode DEFAULT group default qlen 1000
link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
RX: bytes packets errors dropped overrun mcast
21914963679042 3114955121 0 0 0 0
TX: bytes packets errors dropped carrier collsns
21914963679042 3114955121 0 0 0 0
2: enp3s0f0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc mq state UP mode DEFAULT group default qlen 1000
link/ether d4:5d:64:40:53:ca brd ff:ff:ff:ff:ff:ff
RX: bytes packets errors dropped overrun mcast
251928745868 1094612700 0 0 0 5914052
TX: bytes packets errors dropped carrier collsns
1091337709507 1328468566 0 0 0 0
3: enp3s0f1: <BROADCAST,MULTICAST> mtu 1500 qdisc noop state DOWN mode DEFAULT group default qlen 1000
link/ether d4:5d:64:40:53:cb brd ff:ff:ff:ff:ff:ff
RX: bytes packets errors dropped overrun mcast
0 0 0 0 0 0
TX: bytes packets errors dropped carrier collsns
0 0 0 0 0 0
据我所知,lo
是本地的。所以必须忽略。但我需要得到剩余接口的 TX 和 RX 的总和。怎么做到呢?
谢谢。
我不知道您是否需要安装该
ifupdown
软件包,但您可以安装iftop
它来为您提供当前费率和内容的实时网络视图。它确实涵盖了互联网以及发生的本地连接。你应该运行它
sudo
例子:
或者你可以只显示一个特定的界面,比如
bond0
要获得与互联网通信的接口,它是填充了默认网关的接口。您可以运行
netstat -rn
以显示该系统上的所有网络。下面我们可以看到我的网关10.0.0.1
在bond0
接口上。或者
ip route
(感谢 Doug :))将显示相同的网关信息:在此处添加屏幕截图,显示其上有条形以显示哪些应用程序以及哪个 TX 或 RX 更高或更低。
iftop
您可以通过按键盘上的任一q或Ctrl+来退出。C此脚本在我的整个 LAN 的主网关/路由器 linux 服务器上每 10 秒打印一次 Internet 数量、enp1s0、接收和传输字节数。
doug@s15:~/tmp$ cat internet_mon
要只获得一次结果并退出,请取出循环并将睡眠时间调整为您想要的任何时间。然后,您可以从某个更高级别的应用程序调用此脚本并捕获输出。或者直接在更高级别的应用程序中执行相同的操作。
示例运行:
请注意,我使程序可执行:
如果您只想查看该信息以进行监控或一次性查看,则可以使用该
bmon
程序。它是一个交互式网络监控工具。您可以使用 apt 安装它。然后
bmon
在您的终端中运行。运行后,点击
d
键打开详细信息部分,然后使用箭头导航到所需的界面。总 TX 和 RX 将显示在左栏中。如果您只想打印这 2 个数字而忽略其他所有内容,请使用以下命令在“格式”模式下运行 bmon:
如果您想要当前费率而不是总数,您可以使用
该
-p
选项是在接口上过滤的策略。在您的情况下,您也可以像这样使用它:-p enp3s0f1,enp3s0f0
这就是它在我的系统上的样子
您可以使用其他格式变量来满足您的需要。您可以通过
help
作为格式选项传递来获取可用变量的列表。