Come posso utilizzare Terminal per monitorare un traffico totale di interfacce di rete in Mb

5

Vorrei utilizzare il terminale per monitorare il traffico di rete su una determinata interfaccia, al fine di fornire avvisi quando alcuni totali cumulativi sono stati superati.

Lo script deve acquisire statistiche dal punto in cui è stato avviato e non è necessario memorizzare i valori per riferimento futuro o conservare i valori tramite i riavvii, ecc. Vorrei che l'output fosse leggibile dall'uomo, quindi i valori in Gb o Mb, non pacchetti o byte.

L'intenzione è di essere in grado di includere questo script in un'applicazione di Automator che verrà eseguita in background e di aprire una finestra di dialogo alle soglie impostate per avvisarmi quando mi avvicino a un limite di download, consentendo di scegliere di disconnettere il modem ecc.

Non desidero scaricare strumenti o applicazioni e desidero solo utilizzare gli strumenti forniti da un'installazione standard per il terminale. Ottenere dati da un'applicazione via applescript sarebbe accettabile, ma solo se quell'applicazione è anche uno strumento standard, come il monitor delle attività.

    
posta stuffe 22.02.2012 - 21:33
fonte

3 risposte

4

Sembra nettop quello che stai cercando. Inizia con il parametro help per vedere le opzioni.

nettop -nc -m route sembra essere il miglior indicatore generale del traffico, ma avrà bisogno di script aggiuntivi per analizzare l'output per te

    
risposta data 29.02.2012 - 10:09
fonte
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)
        }
    }'
    
risposta data 15.08.2013 - 19:33
fonte
-1

un comando utile è sudo tcpdump -i en0 - v dovrai fornire la password di sistema -

    
risposta data 25.06.2014 - 14:54
fonte

Leggi altre domande sui tag