如何获取TX和RX的总量

jam*_*fer 5 networking

我想获取 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 之和。如何做呢?

谢谢。

Ter*_*nce 5

我不知道您是否需要ifupdown安装该软件包,但您可以安装该软件包,iftop以便为您提供当前费率和内容的实时网络视图。它确实涵盖了互联网以及发生的本地连接。

\n
sudo apt install iftop\n
Run Code Online (Sandbox Code Playgroud)\n

你应该运行它sudo

\n

例子:

\n
sudo 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

\n
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.1bond0界面上。

\n
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 :) )将显示相同的网关信息:

\n
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

在此处添加屏幕截图,显示其上有条形图以显示哪个应用程序以及哪个 T​​X 或 RX 更高或更低。

\n

在此输入图像描述

\n

您可以iftop通过按键盘上的qCtrl+退出。C

\n


Dou*_*ies 5

该脚本在我的整个 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)