我想获取 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
Run Code Online (Sandbox Code Playgroud)
据我所知,lo
是本地的。所以必须忽略。但我需要获得剩余接口的 TX 和 RX 之和。如何做呢?
谢谢。
我不知道您是否需要ifupdown
安装该软件包,但您可以安装该软件包,iftop
以便为您提供当前费率和内容的实时网络视图。它确实涵盖了互联网以及发生的本地连接。
sudo apt install iftop\n
Run Code Online (Sandbox Code Playgroud)\n你应该运行它sudo
例子:
\nsudo iftop\n\n 12.5Kb 25.0Kb 37.5Kb 50.0Kb 62.5Kb\n\xe2\x94\x94\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\xb4\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\xb4\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\xb4\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\xb4\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\nintrepid.home => Linksys04002.home 0b 0b 0b\n <= 0b 424b 424b\n239.255.255.250 => 169.254.7.236 0b 0b 0b\n <= 1.85Kb 379b 95b\n239.255.255.250 => 10.0.0.148 0b 0b 0b\n <= 1.85Kb 379b 95b\n224.0.0.251 => 10.0.0.172 0b 0b 0b\n <= 0b 339b 498b\n224.0.0.251 => 10.0.0.233 0b 0b 0b\n <= 0b 322b 596b\n255.255.255.255 => TY_WR.home 0b 0b 0b\n <= 800b 320b 320b\n224.0.0.251 => Chromecast.home 0b 0b 0b\n <= 0b 314b 392b\n10.0.0.255 => DESKTOP-DQO2D3U.home 0b 0b 0b\n <= 0b 275b 393b\nintrepid.home => 10.0.0.130 0b 0b 0b\n <= 0b 257b 257b\n\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\nTX: cum: 19.4KB peak: 904b rates: 0b 260b 281b\nRX: 74.8KB 18.8Kb 4.48Kb 3.96Kb 4.34Kb\nTOTAL: 94.2KB 19.7Kb 4.48Kb 4.22Kb 4.61Kb\n
Run Code Online (Sandbox Code Playgroud)\n或者您可以只显示特定的界面,例如bond0
sudo iftop -i bond0\n\n 12.5Kb 25.0Kb 37.5Kb 50.0Kb 62.5Kb\n\xe2\x94\x94\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\xb4\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\xb4\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\xb4\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\xb4\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\nintrepid.home => terrance-ubuntu.home 6.91Kb 6.05Kb 5.40Kb\n <= 2.23Kb 1.84Kb 1.87Kb\n239.255.255.250 => Linksys04002.home 0b 0b 0b\n <= 0b 1.62Kb 828b\n224.0.0.251 => 10.0.0.172 0b 0b 0b\n <= 0b 1.02Kb 781b\n224.0.0.251 => Chromecast.home 0b 0b 0b\n <= 0b 953b 555b\nintrepid.home => 10.0.0.148 0b 0b 0b\n <= 0b 668b 668b\n224.0.0.251 => 10.0.0.233 0b 0b 0b\n <= 0b 645b 484b\n10.0.0.255 => DESKTOP-DQO2D3U.home 0b 0b 0b\n <= 976b 470b 442b\nintrepid.home => Linksys04002.home 0b 0b 0b\n <= 0b 424b 424b\nintrepid.home => Chromecast.home 0b 0b 0b\n <= 0b 395b 395b\n\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\nTX: cum: 70.5KB peak: 7.67Kb rates: 6.91Kb 6.34Kb 5.97Kb\nRX: 93.0KB 26.8Kb 3.97Kb 10.4Kb 9.20Kb\n
Run Code Online (Sandbox Code Playgroud)\n要获取与互联网通信的接口,它是填写了默认网关的接口。您可以运行netstat -rn
以显示该系统上的所有网络。下面我们可以看到我的网关10.0.0.1
在bond0
界面上。
terrance@Intrepid:~$ netstat -rn\nKernel IP routing table\nDestination Gateway Genmask Flags MSS Window irtt Iface\n0.0.0.0 10.0.0.1 0.0.0.0 UG 0 0 0 bond0\n10.0.0.0 0.0.0.0 255.255.255.0 U 0 0 0 bond0\n10.8.0.0 0.0.0.0 255.255.255.0 U 0 0 0 tun0\n169.254.0.0 0.0.0.0 255.255.0.0 U 0 0 0 bond0\n
Run Code Online (Sandbox Code Playgroud)\n或者ip route
(感谢 Doug :) )将显示相同的网关信息:
terrance@Intrepid:~$ ip route\ndefault via 10.0.0.1 dev bond0 onlink \n10.0.0.0/24 dev bond0 proto kernel scope link src 10.0.0.220 \n10.8.0.0/24 dev tun0 proto kernel scope link src 10.8.0.1 \n169.254.0.0/16 dev bond0 scope link metric 1000 \n
Run Code Online (Sandbox Code Playgroud)\n在此处添加屏幕截图,显示其上有条形图以显示哪个应用程序以及哪个 TX 或 RX 更高或更低。
\n\n您可以iftop
通过按键盘上的q或Ctrl+退出。C
该脚本在我的整个 LAN 的主网关/路由器 Linux 服务器上每 10 秒打印互联网数量、enp1s0、接收和传输字节数。
doug@s15:~/tmp$ cat internet_mon
#! /bin/dash
#
# internet_mon Smythies 2022.10.30
# monitor Rx and TX rates from/to internet
# main gateway computer, s15.
# see also:
# https://askubuntu.com/questions/1438204/how-to-get-total-amount-of-tx-and-rx
#
OLD_RX=$( cat /sys/class/net/enp1s0/statistics/rx_bytes )
OLD_TX=$( cat /sys/class/net/enp1s0/statistics/tx_bytes )
while [ 1 ];
do
sleep 10;
NEW_RX=$( cat /sys/class/net/enp1s0/statistics/rx_bytes )
NEW_TX=$( cat /sys/class/net/enp1s0/statistics/tx_bytes )
echo "RX: $(($NEW_RX-$OLD_RX)) : TX: $(($NEW_TX-$OLD_TX))"
OLD_RX=$NEW_RX
OLD_TX=$NEW_TX
done
Run Code Online (Sandbox Code Playgroud)
要只获取一次结果并退出,请取出循环并将睡眠时间调整为您想要的任何时间。然后,您可以从某个更高级别的应用程序调用此脚本并捕获输出。或者直接在更高级别的应用程序中执行相同的操作。
运行示例:
doug@s15:~/tmp$ ./internet_mon
RX: 10736 : TX: 6447
RX: 10697 : TX: 8830
RX: 448 : TX: 332
RX: 3239145 : TX: 162304
RX: 917 : TX: 1463
RX: 422000 : TX: 25883
RX: 3446330 : TX: 75867
RX: 36471 : TX: 19241
RX: 43750751 : TX: 881056
RX: 3404760 : TX: 71152
RX: 431 : TX: 314
Run Code Online (Sandbox Code Playgroud)
请注意,我使该程序可执行:
chmod 755 internet_mon
doug@s15:~/tmp$ ls -l internet_mon
-rwxr-xr-x 1 doug doug 584 Oct 30 11:30 internet_mon
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
2687 次 |
最近记录: |