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

5

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

El script necesita obtener estadísticas desde el punto en que se inició, y no hay ningún requisito para almacenar valores para futuras referencias, o retener valores durante reinicios, etc. Me gustaría que la salida fuera legible para los humanos, por lo que los valores en Gb o Mb, no paquetes o bytes.

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

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

    
pregunta stuffe 22.02.2012 - 21:33

3 respuestas

4

Suena como nettop es lo que estás buscando. Comienza con el parámetro de ayuda para ver las opciones.

nettop -nc -m route parece ser el mejor indicador de tráfico general, pero necesitará secuencias de comandos adicionales para analizar la salida por usted

    
respondido por el demianturner 29.02.2012 - 10:09
2
_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)
        }
    }'
    
respondido por el daniel Azuelos 15.08.2013 - 19:33
-1

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

    
respondido por el user83562 25.06.2014 - 14:54

Lea otras preguntas en las etiquetas