Mac OSX: Terminalbefehl zum Replizieren von Netzwerkdaten für die Aktivitätsüberwachung?

0

Ich habe jetzt eine Weile herumgegoogelt, um zu versuchen, einen Terminalbefehl zu finden, der insgesamt kb / s IN und OUT für wifi (en0) ausgeben kann.

Der Befehl kann sudo nicht verwenden, daher ist lsof out.

Ich habe versucht, netstat mit der Option -w zu verwenden, aber der Befehl wird von einem Skript ausgeführt, das automatisch aktualisiert wird. Daher besteht ein Konflikt mit der Verwendung von -w.

Ich möchte die Ausgabe des Aktivitätsmonitors replizieren data sent/sec, aber mit einem Terminalbefehl, der jede Sekunde wiederholt werden kann.

Erve1879
quelle

Antworten:

0

netstat -w 1Wie Sie bereits erwähnt haben, können Sie den Netzwerkverkehr am einfachsten jede Sekunde mit überwachen .

Es scheint jedoch, dass Sie ein anderes Skript haben möchten, das jede Sekunde (?) Aufgerufen wird und möglicherweise die Ausgabe von netstat analysiert.

Wie wäre es, die Ausgabe von netstat in eine Datei umzuleiten netstat -w 1 > /tmp/netstat_output.txt &? Führen Sie das einmal aus (oder als Launch Agent) und lassen Sie dann einfach Ihr anderes Skript die Ausgabe untersuchen (vielleicht wie tail -1 /tmp/netstat_output.txt). Wenn Ihr Skript wirklich jede Sekunde wiederholt / aufgerufen wird, besteht die Möglichkeit, dass Sie dieselbe Zeile zweimal lesen (wenn das Zeitdelta zwischen zwei Skriptläufen kürzer ist als das Zeitdelta der netstat-Ausgabe).

Die einfachste Option wäre netstat -w 1, netstat die Aktualisierung durchführen zu lassen und das aufrufende Skript nicht wiederholen / aktualisieren zu lassen.

jimtut
quelle
Danke @jimtut - das könnte eine Lösung sein. Der Grund, warum ich netstat -w nicht verwenden kann, ist, dass das Programm eine Ausgabe / ein Ergebnis anstelle der "gestreamten" Ausgabe von netstat -w benötigt. Das Problem wäre eine potenziell große Datei ...!
Erve1879
In welcher Sprache ist dein Programm? Es sollte möglich sein, netstatdirekt in Ihr Programm zu leiten, anstatt eine temporäre Datei zu verwenden.
Jimtut
Danke @jimtut. Um nicht um den heißen Brei herumzublödeln, versuche ich, ein Widget für Ubersicht (eine neue GeekTool-Alternative) zu schreiben, in dem die gesamten en0 In / Out-KB / s (wie iStat-Menüs) angezeigt werden. Hier ist das Problem bei Github (das Codebeispiele usw. zeigt): github.com/felixhageloh/uebersicht-widgets/issues/8
Erve1879
Ich habe das iftoperwähnte auf Github ausprobiert , aber dieser Befehl wird auch nicht beendet (was ich nicht sagen kann), und die Ausgabe wäre noch schwieriger zu analysieren als netstat. -sBeim Ausführen wird eine Option erwähnt iftop -h(die Hilfeseite), die jedoch auf der manSeite nicht dokumentiert ist und anscheinend nicht funktioniert. Vielleicht ist es ein Feature, das sie entfernt haben, oder es ist etwas, das sie hinzufügen wollen? Wenn Ihnen die iftopOption gefällt , können Sie sich an die Entwickler wenden und nach der -sOption fragen . Beachten Sie, dass es iftopanscheinend erforderlich ist, dass Sie es so ausführen, wie es sudo iftopin einem Widget möglicherweise nicht funktioniert.
Jimtut