AskOverflow.Dev

AskOverflow.Dev Logo AskOverflow.Dev Logo

AskOverflow.Dev Navigation

  • Início
  • system&network
  • Ubuntu
  • Unix
  • DBA
  • Computer
  • Coding
  • LangChain

Mobile menu

Close
  • Início
  • system&network
    • Recentes
    • Highest score
    • tags
  • Ubuntu
    • Recentes
    • Highest score
    • tags
  • Unix
    • Recentes
    • tags
  • DBA
    • Recentes
    • tags
  • Computer
    • Recentes
    • tags
  • Coding
    • Recentes
    • tags
Início / ubuntu / Perguntas / 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

Como obter a quantidade total de TX e RX

  • 772

Quero obter a quantidade total de TX e RX para saber a quantidade de dados que o servidor está recebendo ou transmitindo em um momento.

Com este comando ip -s linkeu recebo este resultado

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 

Até onde eu sei, loé local. Então deve ser ignorado. Mas preciso pegar a soma de TX e RX das interfaces restantes. Como pode ser feito?

Obrigado.

networking
  • 3 3 respostas
  • 505 Views

3 respostas

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

    Eu não sei se você precisa do ifupdownpacote instalado, mas você pode instalar iftoppara lhe dar uma visão de rede ao vivo para as taxas atuais e outras coisas. Ele cobre a internet, bem como as conexões locais acontecendo.

    sudo apt install iftop
    

    Você deve executá-lo comsudo

    Exemplo:

    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
    

    Ou você pode mostrar apenas uma interface específica comobond0

    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
    

    Para obter a interface que está se comunicando com a internet é aquela que tem o gateway padrão preenchido. Você pode executar netstat -rnpara mostrar todas as redes desse sistema. Abaixo podemos ver que meu gateway 10.0.0.1está na bond0interface.

    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
    

    Ou ip route(obrigado Doug :) ) mostrará as mesmas informações do gateway:

    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 
    

    Adicionando uma captura de tela aqui mostrando que há barras para mostrar quais aplicativos e qual TX ou RX é maior ou menor.

    insira a descrição da imagem aqui

    Você sai iftoppressionando um qou Ctrl+ Cno teclado.

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

    Este script imprime o número de internet, enp1s0, recebe e transmite bytes a cada 10 segundos no meu servidor linux de gateway/roteador principal para toda a minha LAN.

    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
    

    Para obter os resultados apenas uma vez e sair, retire o loop e ajuste o tempo de suspensão para o que desejar. Você pode chamar esse script de algum aplicativo de nível superior e capturar a saída. Ou apenas faça a mesma coisa diretamente no aplicativo de nível superior.

    Exemplo de execução:

    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
    

    E note que eu fiz o programa executável:

    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

    Se tudo o que você deseja é ver essas informações para monitoramento ou de forma pontual, você pode usar o bmonprograma. É uma ferramenta interativa de monitoramento de rede.

    Você pode instalá-lo com o apt. E então execute bmonno seu terminal.

    apt install bmon
    

    Depois de executado, toque na dtecla para abrir a seção de detalhes e, com as setas, navegue até a interface desejada. O total de TX e RX aparecerá na coluna da esquerda.

    aplicativo bmon


    Se você quiser apenas imprimir esses 2 números e ignorar todo o resto, execute o bmon no modo "format" usando o seguinte comando:

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

    Se você quiser a taxa atual em vez do total, você pode usar

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

    A -popção é a política para filtrar interfaces. No seu caso, você também usa assim:-p enp3s0f1,enp3s0f0

    É assim que fica no meu sistema

    $ 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
    

    Você pode usar outras variáveis ​​de formatação para atender às suas necessidades. Você pode obter a lista de variáveis ​​disponíveis passando helpcomo opção de formato.

     bmon -o format:help
    
    • 0

relate perguntas

Sidebar

Stats

  • Perguntas 205573
  • respostas 270741
  • best respostas 135370
  • utilizador 68524
  • Highest score
  • respostas
  • Marko Smith

    Existe um comando para listar todos os usuários? Também para adicionar, excluir, modificar usuários, no terminal?

    • 9 respostas
  • Marko Smith

    Como excluir um diretório não vazio no Terminal?

    • 4 respostas
  • Marko Smith

    Como descompactar um arquivo zip do Terminal?

    • 9 respostas
  • Marko Smith

    Como instalo um arquivo .deb por meio da linha de comando?

    • 11 respostas
  • Marko Smith

    Como instalo um arquivo .tar.gz (ou .tar.bz2)?

    • 14 respostas
  • Marko Smith

    Como listar todos os pacotes instalados

    • 24 respostas
  • Martin Hope
    Flimm Como posso usar o docker sem sudo? 2014-06-07 00:17:43 +0800 CST
  • Martin Hope
    led-Zepp Como faço para salvar a saída do terminal em um arquivo? 2014-02-15 11:49:07 +0800 CST
  • Martin Hope
    ubuntu-nerd Como descompactar um arquivo zip do Terminal? 2011-12-11 20:37:54 +0800 CST
  • Martin Hope
    TheXed Como instalo um arquivo .deb por meio da linha de comando? 2011-05-07 09:40:28 +0800 CST
  • Martin Hope
    Ivan Como listar todos os pacotes instalados 2010-12-17 18:08:49 +0800 CST
  • Martin Hope
    David Barry Como determino o tamanho total de um diretório (pasta) na linha de comando? 2010-08-06 10:20:23 +0800 CST
  • Martin Hope
    jfoucher "Os seguintes pacotes foram retidos:" Por que e como resolvo isso? 2010-08-01 13:59:22 +0800 CST
  • Martin Hope
    David Ashford Como os PPAs podem ser removidos? 2010-07-30 01:09:42 +0800 CST

Hot tag

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

Explore

  • Início
  • Perguntas
    • Recentes
    • Highest score
  • tag
  • help

Footer

AskOverflow.Dev

About Us

  • About Us
  • Contact Us

Legal Stuff

  • Privacy Policy

Language

  • Pt
  • Server
  • Unix

© 2023 AskOverflow.DEV All Rights Reserve