Herramientas como MRTG proporcionan gráficos de ancho de banda / rendimiento de la red para la utilización actual de la red en interfaces específicas, como eth0. ¿Cómo puedo devolver esa información en la línea de comandos en Linux / UNIX?
Preferiblemente, esto sería sin instalar nada más que lo que está disponible en el sistema como estándar.
linux
networking
bandwidth
Davidmytton
fuente
fuente
bmon
que es útil. github.com/tgraf/bmon#screenshotsRespuestas:
Puede analizar la salida de
ifconfig
fuente
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:
desbordamientos: 0 ': no es un identificador válido' para mí en RHEL6. El análisis/sys/class/net/$dev/statistics
(ver el script de perl en @ephemient answer) funciona directamente mucho mejor.iftop does for network usage what top(1) does for CPU usage
- http://www.ex-parrot.com/~pdw/iftop/No sé qué tan "estándar" es iftop, pero pude instalarlo
yum install iftop
en Fedora.fuente
iftop
puede ser instalado en una instalación limpia de Ubuntu fácilmente, así:apt-get install iftop
.pacman -S iftop
tcpdump
salida nuevamente. Graciasiftop
ywireshark
por permitirme ser tan vago.iftop
es más detallada y proporciona estadísticas por conexión.iftop
requiere instalación (ni siquiera podrá construirlo sinlibpcap
instalarlo) y su página de inicio dice que debe ejecutarse bajoroot
.¿Tienes sar? Probablemente sí si está utilizando RHEL / CentOS.
No necesita priv, binarios tontos, scripts hacky, libpcap, etc. Win.
fuente
Escribí este guión tonto hace mucho tiempo, no depende de nada más que Perl y Linux≥2.6:
Simplemente lee
/sys/class/net/$dev/statistics
cada segundo e imprime los números actuales y la tasa de cambio promedio:fuente
/proc/net/dev
o calcular los datos básicos por segundo de alguna otra manera?nload es una gran herramienta para monitorear el ancho de banda en tiempo real y se instala fácilmente en Ubuntu o Debian con sudo apt-get install nload.
Otra excelente herramienta es iftop , también fácilmente apto-get'able:
¡No se olvide de las clásicas y potentes utilidades sar y netstat en las versiones anteriores de * nix!
fuente
Puede analizar / proc / net / dev .
fuente
/sys/class/net/$dev/statistics
como en el script de ephemient.dstat
- Combina información de vmstat, iostat, ifstat, netstat y másiftop
- Increíble utilidad de ancho de banda de red para analizar lo que realmente está sucediendo en su ethnetio
- Mide el rendimiento neto de una red a través de TCP / IPinq
- Utilidad de resolución de problemas de CLI que muestra información sobre el almacenamiento, normalmente Symmetrix. De forma predeterminada, INQ devuelve el nombre del dispositivo, el ID de Symmetrix, el LUN de Symmetrix y la capacidad.send_arp
- Envía una transmisión arp en el dispositivo de red especificado (predeterminado en eth0), informando una asignación de dirección IP nueva y antigua a una dirección MAC.EtherApe
- es un monitor gráfico de red para Unix modelado a partir de etherman. Con modos de capa de enlace, IP y TCP, muestra la actividad de la red gráficamente.iptraf
- Un monitor de tráfico IP que muestra información sobre el tráfico IP que pasa por su red.Más detalles: http://felipeferreira.net/?p=1194
fuente
Tengo otro guión bash rápido y sucio para eso:
Está considerando que en
sleep 1
realidad durará exactamente un segundo, lo cual no es cierto, pero lo suficientemente bueno para una evaluación aproximada del ancho de banda.Gracias a @ephemient por el
/sys/class/net/<interface>
! :)fuente
let BWRX=($RX-$RXPREV)/1024
(aunque no tengo nada para probarlo ahora)Además de iftop e iptraf, también verifique:
bwm-ng
(Monitor de ancho de banda de próxima generación)y / o
cbm
(Medidor de ancho de banda de color)ref: http://www.powercram.com/2010/01/bandwidth-monitoring-tools-for-ubuntu.html
fuente
Si solo desea obtener el valor, puede usar un delineador de shell simple como este:
Le mostrará el promedio de "bytes recibidos por segundo" durante un período de 10 segundos (puede cambiar el período cambiando el
S=10
parámetro, y puede medir BPS transmitido en lugar de BPS recibido usando entx_bytes
lugar derx_bytes
). No olvide cambiareth0
al dispositivo de red que desea monitorear.Por supuesto, no está limitado a mostrar la tasa promedio (como se menciona en otras respuestas, hay otras herramientas que le mostrarán un resultado mucho mejor), pero esta solución es fácilmente programable para hacer otras cosas.
Por ejemplo, el siguiente script de shell (dividido en varias líneas para facilitar la lectura) ejecutará el proceso de mapa fuera de línea solo cuando la velocidad de transmisión promedio de 5 minutos caiga por debajo de 10 kBPS (presumiblemente, cuando finalice algún otro proceso que consuma ancho de banda):
Tenga en cuenta que
/sys/class/...
es específico de Linux (lo cual está bien, ya que el remitente eligió lalinux
etiqueta) y necesita un kernel no arcaico. El código de shell en sí es compatible con / bin / sh (por lo que no solo bash, sino también con dash y otras implementaciones de / bin / sh funcionarán) y / bin / sh es algo que realmente siempre está instalado.fuente
Me gusta,
iptraf
pero probablemente tengas que instalarlo y parece que ya no se mantiene activamente.fuente
Encuentro que dstat es bastante bueno. Aunque tiene que ser instalado. Le brinda mucha más información de la que necesita. Netstat le dará tarifas de paquetes pero no también ancho de banda. netstat -s
fuente
Puede utilizar iperf para comparar el rendimiento de la red (rendimiento máximo posible ). Consulte los siguientes enlaces para obtener más detalles:
http://en.wikipedia.org/wiki/Iperf
https://iperf.fr/
https://code.google.com/p/iperf/
fuente
No pude hacer que el script parse ifconfig funcionara para mí en una AMI, así que hice que esto funcionara midiendo el tráfico recibido en promedio durante 10 segundos
Lo siento, es tan barato y desagradable, ¡pero funcionó!
fuente
Si desea la salida de (ifconfig -a) en formato json, puede usar esto (python)
fuente