Ferramentas como o MRTG fornecem gráficos de taxa de transferência / largura de banda da rede para a utilização atual da rede em interfaces específicas, como eth0. Como posso retornar essas informações na linha de comando no Linux / UNIX?
De preferência, isso seria feito sem instalar nada além do que está disponível no sistema como padrão.
linux
networking
bandwidth
davidmytton
fonte
fonte
bmon
que é útil. github.com/tgraf/bmon#screenshotsRespostas:
Você pode analisar a saída de
ifconfig
fonte
while true; do export `ifconfig p1p1 | grep packets | awk '{print $5, $3}' | xargs echo | sed -E -e "s/([0-9]+) ([0-9]+) ([0-9]+) ([0-9]+)/rx=\1 rxp=\2 tx=\3 txp=\4/"` ; echo $rx $rxp $tx $txp `cat /tmp/netstat` | awk '{print $1-$5, $2-$6, $3-$7, $4-$8}';echo $rx $rxp $tx $txp > /tmp/netstat; sleep 5 ;done
-bash: export:
overruns: 0 ': não é um identificador válido` para mim no RHEL6. A análise/sys/class/net/$dev/statistics
(veja o script perl na resposta @ephemient) funciona muito melhor diretamente.iftop does for network usage what top(1) does for CPU usage
- http://www.ex-parrot.com/~pdw/iftop/Não sei o quão "padrão" o iftop é, mas consegui instalá-lo
yum install iftop
no Fedora.fonte
iftop
pode ser instalado em um Ubuntu instalação limpa facilmente, bem como:apt-get install iftop
.pacman -S iftop
tcpdump
saída novamente. Obrigadoiftop
ewireshark
, por me permitir ser tão preguiçoso.iftop
é mais detalhada e fornece estatísticas por conexão.iftop
requer instalação (você não será capaz de construí-lo semlibpcap
instalado) e sua página inicial diz que ele deve ser executado sobroot
.Sar obtido? Provavelmente sim se você estiver usando RHEL / CentOS.
Não há necessidade de binários priv, dorky, scripts hacky, libpcap, etc. Win.
fonte
Escrevi este script idiota há muito tempo, ele não depende de nada além de Perl e Linux≥2,6:
Ele apenas lê a
/sys/class/net/$dev/statistics
cada segundo e imprime os números atuais e a taxa média de mudança:fonte
/proc/net/dev
ou calcular dados por / segundo básicos de alguma outra forma?nload é uma ótima ferramenta para monitorar largura de banda em tempo real e facilmente instalado no Ubuntu ou Debian com sudo apt-get install nload.
Outra ferramenta excelente é o iftop , também facilmente adaptável:
Não se esqueça dos utilitários sar e netstat clássicos e poderosos nos * nix mais antigos!
fonte
Você pode analisar / proc / net / dev .
fonte
/sys/class/net/$dev/statistics
como no script do epemiente.dstat
- Combina informações de vmstat, iostat, ifstat, netstat e muito maisiftop
- Incrível utilitário de largura de banda de rede para analisar o que realmente está acontecendo no seu computadornetio
- Mede a taxa de transferência de rede de uma rede via TCP / IPinq
- Utilitário de solução de problemas CLI que exibe informações sobre armazenamento, normalmente Symmetrix. Por padrão, INQ retorna o nome do dispositivo, Symmetrix ID, Symmetrix LUN e capacidade.send_arp
- Envia uma transmissão ARP no dispositivo de rede especificado (o padrão é eth0), relatando um mapeamento de endereço IP antigo e novo para um endereço MAC.EtherApe
- é um monitor gráfico de rede para Unix modelado após etherman. Apresentando camada de link, modos IP e TCP, ele exibe a atividade de rede graficamente.iptraf
- Um monitor de tráfego IP que mostra informações sobre o tráfego IP que passa pela rede.Mais detalhes: http://felipeferreira.net/?p=1194
fonte
Eu tenho outro script bash rápido para isso:
É considerando que
sleep 1
na verdade vai durar exatamente um segundo, o que não é verdade, mas bom o suficiente para uma avaliação aproximada da largura de banda.Agradecimentos a @ephemient pelo
/sys/class/net/<interface>
! :)fonte
let BWRX=($RX-$RXPREV)/1024
(embora eu não tenha nada para testar agora)Além de iftop e iptraf, verifique também:
bwm-ng
(Monitor de largura de banda de última geração)e / ou
cbm
(Medidor de largura de banda colorida)ref: http://www.powercram.com/2010/01/bandwidth-monitoring-tools-for-ubuntu.html
fonte
Se você deseja apenas obter o valor, pode usar um shell simples como este:
Ele mostrará a média de "bytes recebidos por segundo" por um período de 10 segundos (você pode alterar o período alterando o
S=10
parâmetro e pode medir o BPS transmitido em vez do BPS recebido usando emtx_bytes
vez derx_bytes
). Não se esqueça de mudareth0
para o dispositivo de rede que deseja monitorar.Claro, você não está limitado a exibir a taxa média (como mencionado em outras respostas, existem outras ferramentas que irão mostrar uma saída muito melhor), mas esta solução é facilmente programável para fazer outras coisas.
Por exemplo, o seguinte script de shell (dividido em várias linhas para facilitar a leitura) executará o processo offline do mapa apenas quando a velocidade de transmissão média de 5 minutos cair abaixo de 10kBPS (presumivelmente, quando algum outro processo que consome largura de banda terminar):
Observe que
/sys/class/...
é específico do Linux (o que está ok, pois o remetente escolheu alinux
tag) e precisa de um kernel não arcaico. O código do shell em si é compatível com / bin / sh (portanto, não apenas bash, mas dash e outras implementações de / bin / sh funcionarão) e / bin / sh é algo que realmente está sempre instalado.fonte
Eu gosto,
iptraf
mas você provavelmente terá que instalá-lo e ele parece não ser mais mantido ativamente.fonte
Acho que dstat é muito bom. No entanto, deve ser instalado. Fornece muito mais informações do que você precisa. O Netstat fornecerá taxas de pacotes, mas não a largura de banda também. netstat -s
fonte
Você pode usar o iperf para avaliar o desempenho da rede (rendimento máximo possível ). Consulte os links a seguir para obter detalhes:
http://en.wikipedia.org/wiki/Iperf
https://iperf.fr/
https://code.google.com/p/iperf/
fonte
Não consegui fazer com que o script de análise ifconfig funcionasse para mim em um AMI, então coloquei isso para funcionar medindo o tráfego recebido em uma média de 10 segundos
Desculpe, é sempre tão barato e desagradável, mas funcionou!
fonte
Se você quiser a saída de (ifconfig -a) no formato json, você pode usar isto (python)
fonte