Estou procurando uma boa maneira de obter o uso total atual da largura de banda em uma máquina Linux. Eu tentei iftop
, nethogs
mas eles não mostram o uso real da largura de banda em comparação com o monitor do sistema; eles não atendem às necessidades do meu projeto. Quero um comando que eu execute e retorne o uso atual para upload e download e nada mais.
Gostaria também de fazer isso com ferramentas nativas do Linux sem instalar nada. Na verdade estou fazendo um aplicativo de monitoramento, e quero que ele consiga monitorar computadores sem a necessidade de instalar algo em cada computador que o usuário deseja monitorar, seria ótimo!
Responder1
Usar iptraf
-http://www.linuxcommand.org/man_pages/iptraf8.html
É um utilitário de linha de comando baseado em ncurses que é capaz de fornecer estatísticas sobre todas as interfaces da máquina - incluindo o uso de largura de banda.
Responder2
Existem muitas ferramentas que você pode usar: , nload
, bmon
, iftop
, vnstat
... ifstat
e se quiser obter apenas uma parte específica da saída (por exemplo, upload e download), tenho certeza que você pode grep
// a saída para fazer com que funcione para você.cut
awk
18 comandos para monitorar a largura de banda da rede no servidor Linux
Responder3
sysstat também coleta estatísticas de rede. Se você fizer um "man sar", verá todos os recursos para os quais pode manter dados históricos.
Configure-o colocando no cron o comando "/usr/lib/sa/sa1" (ou /usr/lib64/sa/sa1) e execute-o sempre que desejar um ponto de dados (por exemplo, a cada 5 minutos)
Então você pode usar “sar” para visualizar seus dados. O padrão é hoje. Você também pode visualizar dados históricos de até 30 dias. Você também pode arquivar seus dados para mantê-los para sempre (os dados de cada dia têm cerca de 8 MB).
Para rede, você usaria “sar -n”
Ferramenta maravilhosa :)
Um exemplo:
testlinux:~ # sar -n DEV | head -10
Linux 2.6.16.60-0.21-default (pCITFileSvr01) 11/07/10
00:00:01 IFACE rxpck/s txpck/s rxkB/s txkB/s rxcmp/s txcmp/s rxmcst/s
00:05:01 lo 0.00 0.00 0.00 0.00 0.00 0.00 0.00
00:05:01 eth0 9.95 0.12 1.42 0.02 0.00 0.00 0.00
00:10:01 lo 0.00 0.00 0.00 0.00 0.00 0.00 0.00
00:10:01 eth0 10.20 0.04 1.44 0.00 0.00 0.00 0.00
00:15:01 lo 0.00 0.00 0.00 0.00 0.00 0.00 0.00
00:15:01 eth0 10.32 0.12 1.50 0.02 0.00 0.00 0.00
00:20:01 lo 0.00 0.00 0.00 0.00 0.00 0.00 0.00
testlinux:~ #
Responder4
Tudo bem, depois de pesquisar um pouco, descobriessesolução em resumo, ela usa netstat
para resumir o uso da rede. Aqui está meu comando modificado
netstat -e -n -i | grep wlan0 -A 5 | grep 'RX packets' | tail -1
Exemplo de saída: -
RX packets 76639 bytes 73706194 (70.2 MiB)
Altere wlan0
o nome da interface da sua placa, você pode filtrar mais saída desse comando, por exemplo
netstat -e -n -i | grep wlan0 -A 5 | grep 'RX packets' | tail -1 | awk '{print $6$7}'