5 votos

¿Cómo puedo usar el Terminal para monitorear el tráfico total de las interfaces de red en Mb?

Me gustaría utilizar el terminal para supervisar el tráfico de red en una determinada interfaz, con el fin de proporcionar alertas cuando se han superado ciertos totales acumulados.

El script necesita obtener las estadísticas desde el momento en que se inicia, y no hay necesidad de almacenar los valores para futuras referencias, o retener los valores durante los reinicios, etc. Me gustaría que la salida fuera legible para los humanos, así que los valores en Gb o Mb, no paquetes o bytes.

La intención es poder incluir este script en una aplicación de Automator que se ejecutará en segundo plano, y abrirá un cuadro de diálogo en los umbrales establecidos para alertarme cuando me acerque a un límite de descarga, permitiendo elegir desconectar el módem, etc.

No deseo descargar ninguna herramienta o aplicación, y sólo deseo utilizar las herramientas que una instalación estándar proporciona para el terminal. Obtener datos de una aplicación a través de applescript sería aceptable, pero sólo si esa aplicación es también una herramienta estándar, como el monitor de actividad.

4voto

demianturner Puntos 469

Suena como nettop es lo que está buscando. Inícialo con el parámetro help para ver las opciones.

nettop -nc -m route parece ser el mejor medidor de tráfico en general, pero necesitará una secuencia de comandos adicional para analizar la salida para usted

2voto

Rich Puntos 2429
_delta_t=20
_interface=en1
netstat -i -I ${_interface} -b -w ${_delta_t} |
    awk 'BEGIN {
        printf ("instantaneous (byte/s)\tcumulated (Mbytes)\nin\tout\t\tin\tout\n")
    }{
        if ($0 !~ /(input|packets)/) {
            # get input & output bytes
            inb=$3 ; oub=$6 ;
            # accumulate them
            cuminb+=$3 ; cumoub+=$6 ;
            printf("%8d%8d\t", inb/'${_delta_t}', oub/'${_delta_t}')
            printf("%8.3f%8.3f\n", cuminb/1000000, cumoub/1000000)
        }
    }'

-1voto

Nick Johnson Puntos 163

Un comando útil es sudo tcpdump -i en0 - v tendrá que proporcionar su contraseña del sistema -

AppleAyuda.com

AppleAyuda es una comunidad de usuarios de los productos de Apple en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X