Mac OSX: comando terminale per replicare i dati di rete del monitor attività?


0

Ho cercato su Google per un po 'di tempo ora per cercare di trovare un comando terminale in grado di produrre kb / s IN e OUT totali per wifi (en0).

Il comando non può usare sudo, quindi lsof è fuori.

Ho provato ad usare netstat con l'opzione -w, ma il comando verrà eseguito da uno script che si aggiorna automaticamente, quindi c'è un conflitto con l'uso di -w.

Quello che sto mirando a fare è replicare l'output di Activity Monitor data sent/sec, ma con un comando terminale che può essere ripetuto ogni secondo.

Risposte:


0

netstat -w 1Come hai detto, il modo più semplice per monitorare il traffico di rete ogni secondo è con te.

Tuttavia, sembra che tu voglia avere qualche altro script che viene chiamato (?) Ogni secondo e forse sta analizzando l'output di netstat?

Che ne dici di reindirizzare l'output da netstat a un file, come netstat -w 1 > /tmp/netstat_output.txt &? Eseguilo una volta (o come Launch Agent), quindi fai semplicemente esaminare ad altri tuoi output l'output (forse come tail -1 /tmp/netstat_output.txt). Se il tuo script verrà davvero ripetuto / chiamato ogni secondo, c'è la possibilità che tu legga la stessa riga due volte (se il delta temporale tra 2 esecuzioni dello script è più breve del delta temporale dell'output netstat).

L'opzione più semplice sarebbe netstat -w 1, e lasciare che netstat esegua l'aggiornamento, senza che lo script chiamante venga ripetuto / aggiornato.


Grazie @jimtut - potrebbe essere una soluzione. Il motivo per cui non riesco a usare netstat -w è che il programma richiede un output / risultato, piuttosto che l'output "in streaming" di netstat -w .... È un po 'frustrante, ma il piping dell'output potrebbe funzionare. Il problema sarebbe un file potenzialmente enorme ...!
Erve1879,

In che lingua è il tuo programma? Dovrebbe essere possibile eseguire il pipe netstatdirettamente nel programma, anziché utilizzare un file temporaneo.
jimtut,

Grazie @jimtut. Per evitare di perdere tempo, sto provando a scrivere un widget per Ubersicht (una nuova alternativa a GeekTool) per mostrare il totale en0 In / Out KB / s (come i menu iStat). Ecco il problema su Github (che mostra esempi di codice, ecc): github.com/felixhageloh/uebersicht-widgets/issues/8
Erve1879

Ho provato il iftopcitato su Github, ma neanche quel comando (o quello che posso dire) non termina e il suo output sarebbe ancora più difficile da analizzare rispetto a netstat. C'è -sun'opzione menzionata quando si esegue iftop -h(la pagina della guida), ma non è documentata nella manpagina e non sembra funzionare. Forse è una funzionalità che hanno rimosso o forse è qualcosa che stanno pianificando di aggiungere? Se ti piace l' iftopopzione puoi contattare gli sviluppatori e chiedere l' -sopzione. Si noti che iftopsembra che sia necessario eseguirlo come sudo iftoppotrebbe non funzionare in un widget.
jimtut,
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.