AskOverflow.Dev

AskOverflow.Dev Logo AskOverflow.Dev Logo

AskOverflow.Dev Navigation

  • 主页
  • 系统&网络
  • Ubuntu
  • Unix
  • DBA
  • Computer
  • Coding
  • LangChain

Mobile menu

Close
  • 主页
  • 系统&网络
    • 最新
    • 热门
    • 标签
  • Ubuntu
    • 最新
    • 热门
    • 标签
  • Unix
    • 最新
    • 标签
  • DBA
    • 最新
    • 标签
  • Computer
    • 最新
    • 标签
  • Coding
    • 最新
    • 标签
主页 / ubuntu / 问题 / 1438204
Accepted
james hofer
james hofer
Asked: 2022-10-31 08:12:11 +0800 CST2022-10-31 08:12:11 +0800 CST 2022-10-31 08:12:11 +0800 CST

如何获得 TX 和 RX 的总量

  • 772

我想获得 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 的总和。怎么做到呢?

谢谢。

networking
  • 3 3 个回答
  • 505 Views

3 个回答

  • Voted
  1. Best Answer
    Terrance
    2022-10-31T08:41:18+08:002022-10-31T08:41:18+08:00

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

    sudo apt install iftop
    

    你应该运行它sudo

    例子:

    sudo iftop
    
                    12.5Kb          25.0Kb          37.5Kb          50.0Kb    62.5Kb
    └───────────────┴───────────────┴───────────────┴───────────────┴───────────────
    intrepid.home              => Linksys04002.home             0b      0b      0b
                               <=                               0b    424b    424b
    239.255.255.250            => 169.254.7.236                 0b      0b      0b
                               <=                            1.85Kb   379b     95b
    239.255.255.250            => 10.0.0.148                    0b      0b      0b
                               <=                            1.85Kb   379b     95b
    224.0.0.251                => 10.0.0.172                    0b      0b      0b
                               <=                               0b    339b    498b
    224.0.0.251                => 10.0.0.233                    0b      0b      0b
                               <=                               0b    322b    596b
    255.255.255.255            => TY_WR.home                    0b      0b      0b
                               <=                             800b    320b    320b
    224.0.0.251                => Chromecast.home               0b      0b      0b
                               <=                               0b    314b    392b
    10.0.0.255                 => DESKTOP-DQO2D3U.home          0b      0b      0b
                               <=                               0b    275b    393b
    intrepid.home              => 10.0.0.130                    0b      0b      0b
                               <=                               0b    257b    257b
    ────────────────────────────────────────────────────────────────────────────────
    TX:             cum:   19.4KB   peak:    904b   rates:      0b    260b    281b
    RX:                    74.8KB           18.8Kb           4.48Kb  3.96Kb  4.34Kb
    TOTAL:                 94.2KB           19.7Kb           4.48Kb  4.22Kb  4.61Kb
    

    或者你可以只显示一个特定的界面,比如bond0

    sudo iftop -i bond0
    
                    12.5Kb          25.0Kb          37.5Kb          50.0Kb    62.5Kb
    └───────────────┴───────────────┴───────────────┴───────────────┴───────────────
    intrepid.home              => terrance-ubuntu.home       6.91Kb  6.05Kb  5.40Kb
                               <=                            2.23Kb  1.84Kb  1.87Kb
    239.255.255.250            => Linksys04002.home             0b      0b      0b
                               <=                               0b   1.62Kb   828b
    224.0.0.251                => 10.0.0.172                    0b      0b      0b
                               <=                               0b   1.02Kb   781b
    224.0.0.251                => Chromecast.home               0b      0b      0b
                               <=                               0b    953b    555b
    intrepid.home              => 10.0.0.148                    0b      0b      0b
                               <=                               0b    668b    668b
    224.0.0.251                => 10.0.0.233                    0b      0b      0b
                               <=                               0b    645b    484b
    10.0.0.255                 => DESKTOP-DQO2D3U.home          0b      0b      0b
                               <=                             976b    470b    442b
    intrepid.home              => Linksys04002.home             0b      0b      0b
                               <=                               0b    424b    424b
    intrepid.home              => Chromecast.home               0b      0b      0b
                               <=                               0b    395b    395b
    ────────────────────────────────────────────────────────────────────────────────
    TX:             cum:   70.5KB   peak:   7.67Kb  rates:   6.91Kb  6.34Kb  5.97Kb
    RX:                    93.0KB           26.8Kb           3.97Kb  10.4Kb  9.20Kb
    

    要获得与互联网通信的接口,它是填充了默认网关的接口。您可以运行netstat -rn以显示该系统上的所有网络。下面我们可以看到我的网关10.0.0.1在bond0接口上。

    terrance@Intrepid:~$ netstat -rn
    Kernel IP routing table
    Destination     Gateway         Genmask         Flags   MSS Window  irtt Iface
    0.0.0.0         10.0.0.1        0.0.0.0         UG        0 0          0 bond0
    10.0.0.0        0.0.0.0         255.255.255.0   U         0 0          0 bond0
    10.8.0.0        0.0.0.0         255.255.255.0   U         0 0          0 tun0
    169.254.0.0     0.0.0.0         255.255.0.0     U         0 0          0 bond0
    

    或者ip route(感谢 Doug :))将显示相同的网关信息:

    terrance@Intrepid:~$ ip route
    default via 10.0.0.1 dev bond0 onlink 
    10.0.0.0/24 dev bond0 proto kernel scope link src 10.0.0.220 
    10.8.0.0/24 dev tun0 proto kernel scope link src 10.8.0.1 
    169.254.0.0/16 dev bond0 scope link metric 1000 
    

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

    在此处输入图像描述

    iftop您可以通过按键盘上的任一q或Ctrl+来退出。C

    • 4
  2. Doug Smythies
    2022-10-31T10:41:51+08:002022-10-31T10:41:51+08:00

    此脚本在我的整个 LAN 的主网关/路由器 linux 服务器上每 10 秒打印一次 Internet 数量、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
    

    要只获得一次结果并退出,请取出循环并将睡眠时间调整为您想要的任何时间。然后,您可以从某个更高级别的应用程序调用此脚本并捕获输出。或者直接在更高级别的应用程序中执行相同的操作。

    示例运行:

    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
    

    请注意,我使程序可执行:

    chmod 755 internet_mon
    doug@s15:~/tmp$ ls -l internet_mon
    -rwxr-xr-x 1 doug doug 584 Oct 30 11:30 internet_mon
    
    • 3
  3. Dan
    2022-11-02T00:54:17+08:002022-11-02T00:54:17+08:00

    如果您只想查看该信息以进行监控或一次性查看,则可以使用该bmon程序。它是一个交互式网络监控工具。

    您可以使用 apt 安装它。然后bmon在您的终端中运行。

    apt install bmon
    

    运行后,点击d键打开详细信息部分,然后使用箭头导航到所需的界面。总 TX 和 RX 将显示在左栏中。

    bmon 应用程序


    如果您只想打印这 2 个数字而忽略其他所有内容,请使用以下命令在“格式”模式下运行 bmon:

    bmon -p 'en*' -o format:fmt='$(element:name) RX:$(attr:rx:bytes) bytes TX:$(attr:tx:bytes) bytes\n'
    

    如果您想要当前费率而不是总数,您可以使用

    bmon -p 'en*' -o format:fmt='$(element:name) RX:$(attr:rxrate:bytes) bytes TX:$(attr:txrate:bytes) bytes\n'
    

    该-p选项是在接口上过滤的策略。在您的情况下,您也可以像这样使用它:-p enp3s0f1,enp3s0f0

    这就是它在我的系统上的样子

    $ bmon -p 'wl*' -o format:fmt='$(element:name) RX:$(attr:rx:bytes) bytes TX:$(attr:tx:bytes) bytes\n'
    wlp3s0 RX:12482795221 bytes TX:5539315984 bytes
    wlp3s0 RX:12482795554 bytes TX:5539316211 bytes
    wlp3s0 RX:12482795614 bytes TX:5539316324 bytes
    wlp3s0 RX:12482800220 bytes TX:5539321022 bytes
    ^C
    

    您可以使用其他格式变量来满足您的需要。您可以通过help作为格式选项传递来获取可用变量的列表。

     bmon -o format:help
    
    • 0

相关问题

  • 如何设置 VLAN 转发?

  • 如何将主机 Ubuntu 上的 VPN (tun0) 网络适配器映射到 VirtualBox 来宾 Windows?

  • 如何限制下载/上传带宽?

  • 如何通过 Windows 网络共享文件?

  • 面板小程序以文本形式显示当前网络流量?

Sidebar

Stats

  • 问题 205573
  • 回答 270741
  • 最佳答案 135370
  • 用户 68524
  • 热门
  • 回答
  • Marko Smith

    如何运行 .sh 脚本?

    • 16 个回答
  • Marko Smith

    如何安装 .tar.gz(或 .tar.bz2)文件?

    • 14 个回答
  • Marko Smith

    如何列出所有已安装的软件包

    • 24 个回答
  • Marko Smith

    无法锁定管理目录 (/var/lib/dpkg/) 是另一个进程在使用它吗?

    • 25 个回答
  • Martin Hope
    Flimm 如何在没有 sudo 的情况下使用 docker? 2014-06-07 00:17:43 +0800 CST
  • Martin Hope
    Ivan 如何列出所有已安装的软件包 2010-12-17 18:08:49 +0800 CST
  • Martin Hope
    La Ode Adam Saputra 无法锁定管理目录 (/var/lib/dpkg/) 是另一个进程在使用它吗? 2010-11-30 18:12:48 +0800 CST
  • Martin Hope
    David Barry 如何从命令行确定目录(文件夹)的总大小? 2010-08-06 10:20:23 +0800 CST
  • Martin Hope
    jfoucher “以下软件包已被保留:”为什么以及如何解决? 2010-08-01 13:59:22 +0800 CST
  • Martin Hope
    David Ashford 如何删除 PPA? 2010-07-30 01:09:42 +0800 CST

热门标签

10.10 10.04 gnome networking server command-line package-management software-recommendation sound xorg

Explore

  • 主页
  • 问题
    • 最新
    • 热门
  • 标签
  • 帮助

Footer

AskOverflow.Dev

关于我们

  • 关于我们
  • 联系我们

Legal Stuff

  • Privacy Policy

Language

  • Pt
  • Server
  • Unix

© 2023 AskOverflow.DEV All Rights Reserve