netstat -ntu erweitern

BlackSnack

New Member
Hallo habe FreeBSD 9.0

und möchte gerne denn Befahl
netstat -ntu | awk '{print $5}' | cut -d: -f1 | sort | uniq -c | sort -n

Bei mein FreeBSD 9.0 rein haben aber wie kann man nach installieren ?

Danke Für eurer Hilfe :)
 
Ich weiss nich genau was du machen willst, aber versuch mal das hier
Code:
netstat -f inet -n | awk '{print $5}' | cut -d: -f1 | sort | uniq -c | sort -n
 
oder gleich sockstat(1), 1. Wahl auf FreeBSD, rtfm !!, und von da weiter awk'en, cut'en, sort'en und uniq'en.
oder nimm sowas:
Code:
#!/bin/sh
sockstat -4c  | sed -e '/ADDRESS/d' -e 's/\:/  /2' |\

 awk ' {
        Ip[$7]++;
}
        END {
        for (var in Ip)
          print Ip[var], var
          print "total connections:", NR
}'

Namen geben, Copy & paste. chmod +x und aufrufen.Verändern nach Bedarf & Belieben

hth
 
Auch wenn die Pipes im OP ziemlich redundant zusammengefrickelt aussehen, ist die Lösung deutlich kürzer und vor allem leichter zu Tippen als das AWK Skript.

Was ich interessant finde ist, dass es so viele Lösungsvorschläge gibt obwohl wir noch gar nicht wissen, was der OP eigentlich erreichen will. Ist mir jedenfalls schleierhaft.
 
Auch wenn die Pipes im OP ziemlich redundant zusammengefrickelt aussehen, ist die Lösung deutlich kürzer und vor allem leichter zu Tippen als das AWK Skript.

Was ich interessant finde ist, dass es so viele Lösungsvorschläge gibt obwohl wir noch gar nicht wissen, was der OP eigentlich erreichen will. Ist mir jedenfalls schleierhaft.

Salve,

unter Linux gibt das die IPs der Rechner aus die sich mit dem Server verbunden haben.
Vermutlich kommt er aus der Linux-Ecke und möchte dieses Kommando so auch unter BSD haben. Das ständige Ärgernis der verschiedenen Verhaltensweisen unter Solaris, Linux und BSD halt. Da kann man schon ein oder zwei graue Haare bekommen. :)

Gruß

marmorkuchen
 
Salve,

wenn Du die IPs der Rechner angezeigt haben möchtest die sich mit dem Server verbunden haben, probiere mal folgendes:

netstat -An -f inet bzw. netstat -An -f inet inet6 (falls Du auch IPv6 fährts)

In der sechsten Spalte findest Du dann die IPs.

Gruß

marmorkuchen
 
Na dann will ich mich natürlich nicht lumpen lassen:
sockstat -c46 | awk '!x[$7]++{print $7}'

Unter csh braucht das ! ein Escape:
sockstat -c46 | awk '\!x[$7]++{print $7}'
 
Im Grunde genommen ist schon alles gesagt, aber ich will die Chance nutzen, das auch noch etwas weiter für alle Anfänger zu erklären.

netstat -ntu | awk '{print $5}' | cut -d: -f1 | sort | uniq -c | sort -n

sind mehrere Befehle, nicht nur einer. Immer, wenn ein | steht, wird die Ausgabe des vorhergehenden Befehls an den danach stehenden weitergeleitet. Das kann man ganz leicht verstehen lernen, wenn man mal einen der zahlreichen im Netz vorhandenen Artikel über shell-scripts liest, etwa den von Kamikaze im Wiki.
Immer, wenn man solch ein Konstrukt einsetzen will, sollte man sich zunächst mal sicher sein, was man möchte und welche Informationsquelle man zum Filtern denn eigentlich hat. Wenn man einen derartig zusammengesetzten Befehl fertig übernehmen will, dann muss man natürlich auch sicher sein, dass alle Einzelteile überhaupt auf dem eignen System installiert sind und wie gewünscht funktionieren.
Da die hier verwendeten Befehle wohl alle zum Grundsystem gehören, sollten die bei einer FreeBSD Installation auch immer dabei sein. Im Zweifel prüft man das aber lieber noch mal nach und zwar würde ich empfehlen, einfach die man page zu dem kommando aufzurufen. Denn, wenn die nicht existiert, existiert mit hoher Wahrscheinlichkeit das Kommando auch nicht.
Die Man-Page wird nun eh gebraucht, um nachzusehen, welche Optionen denn mein Befehl benutzt und ob die überhaupt da sind.
Nun muss man sich orientieren, was denn der erste Befehl überhaupt ausgibt. Das kann man sich ansehen und zusammen mit den möglichen Optionen schon mal günstig vor-filtern. Der Rest ist nur noch herantasten an das gewünschte Ergebnis.

Wieso ist das nicht einheitlich?
Weil FreeBSD nicht GNU ist und weil Solaris auch wieder ein anderes ist und was ich bisher bei Mac-OS-X sehe, ist das zwar viel GNU, aber durchaus nicht nur.
Diese Systeme unterscheiden sich nicht nur durch den Aufbau und die Funktion, sie unterscheiden sich hauptsächlich durch unterschiedliche Lizenz-Modelle, die ihnen zu Grunde liegen und wenn, nur um ein Beispiel zu generieren, ein gutes Tool in Mac-OS-X existiert, aber durch die Firma Apple geschützt ist, dann darf das nicht einfach in ein FreeBSD eingebaut werden und wenn es ein solches Tool in Solaris gibt und es die passende Lizenz hat, dann darf das vielleicht in FreeBSD genommen werden, aber nicht in GNU, weil die Solaris (OpenSolaris)-Lizenz nicht kompatibel zu der GPL(V3) ist, aber kompatibel zur FreeBSD Lizenz, die aber wiederum selbst auch kompatibel ist zur GPL (der klassischen Lizenz für GNU).
Natürlich ist verständlich, dass die Hauptsysteme möglichst Tools im Grundsystem haben möchten, die der eigenen Lizenz entsprechen, das bedeutet, FreeBSD möchte unter Umständen nicht ein Tool einfach aus GNU übernehmen, sondern kluge Menschen schreiben das neu, damit es unter der eignen Lizenz stehen kann. Haben die klugen Leute mal keine Zeit, wird gerade in FreeBSD gerne mal ein Auge zugedrückt und einfach ein Toll übernommen, die Lizenz gibt das nämlich her.

Und deshalb kann etwa netstat in FreeBSD ein durchaus anderes Tool sein, als in einem GNU oder sonstwo.
Das will ich nur kurz andeuten und zeige mal Auszüge aus:

FreeBSD man-page
Code:
     netstat [-AaLnSTWx] [-f protocol_family | -p protocol] [-M core]
             [-N system]
busybox/Linux --help Aufruf
Code:
BusyBox v1.2.1 (2006.10.11-21:54+0000) multi-call binary

Usage: netstat [-laenrtuwx]
GNU/Linux man-page
Code:
SYNOPSIS
       netstat [-venaoc] [--tcp|-t] [--udp|-u] [--raw|-w] [--groups|-g] [--unix|-x] [--inet|--ip] [--ax25] [--ipx] [--netrom]

       netstat [-veenc] [--inet] [--ipx] [--netrom] [--ddp] [--ax25] {--route|-r}

       netstat [-veenpac] {--interfaces|-i}

       netstat [-enc] {--masquerade|-M}

       netstat [-cn] {--netlink|-N}

       netstat {-V|--version} {-h|--help}
Und das ist auch ein schönes Beispiel dafür, warum ich nicht Linux zu GNU sage. Doch das ist dann schon OT.
 
Mit FreeBSD steht auch das wunderbare Werkzeug systat zur Verfügung.
systat aufrufen:
Code:
systat
systat umschalten, so, dass es nicht die Schweine zeigt, sondern Verbindungen zeigt:
Code:
:netstat
Wieder die Schweine zeigen:
Code:
:pigs
 
Ich bedanke mich Für eure Hilfe :)
Und ja Komme aus der Linux Ecke :) und Versuche mich bissen bei FreeBSD :)
und meine Linux befehle :)

Aber danke noch mal :)
 
Selbst mit Linux gibt es noch unterschiedliche netstat-Variationen.

Das hier funktioniert unter Ubuntu/Debian:
Code:
netstat -tulpena
unter SUSE (zumindest in älteren Versionen) bekommt man eine Fehlermeldung.
 
Zurück
Oben