Aus Linux-Magazin 02/2011

Aus dem Alltag eines Sysadmin: Lsof

© j.berger, Photocase.com

Je kürzer das Kommando, desto länger ist die Liste der möglichen Parameter. Das gilt nicht nur für

Lsof, ohne jeden weiteren Parameter ausgeführt, gibt eine lange, lange Liste aller geöffneten Dateien aus. Der Rattenschwanz ist nach der PID sortiert, beginnt also mit »init« . Auf dem Notebook, das ich gern zum Testen benutze, bringt es diese Liste auf nicht weniger als 6778 Einträge – schnell erfassbar ist etwas ganz anderes. Fast alle Kommandozeilenparameter, die Lsof entgegenzunehmen willens ist, lichten nur diesen Dateien-Filz.

Wenn ich zum Beispiel wissen möchte, welcher Prozess eine bestimmte Datei im Zugriff hat, gebe ich einfach deren Namen als Parameter an. Daraufhin liefert das Kommando »lsof /var/log/syslog« – leicht gekürzt – die folgende Ausgabe:

COMMAND PID USER rsyslogd 683 syslog

Auf meinem System läuft also Rsyslog. Jetzt interessiert mich aber auch, mit welchen Dateien Rsyslog außerdem noch jongliert – das Kommando »lsof -c rsyslog« verrät es. Alternativ lasse ich mir außerdem alle Dateien ausgeben, die dem Benutzer »syslog« gehören. Diese Funktion übernimmt der Parameter »-u syslog« .

Da unter Linux sprichwörtlich alles ein File ist, also auch die Netzwerk-Sockets, präsentiert mir das Kommando »lsof -iTCP« alle aktuellen Netzwerkverbindungen. Wenn ich aber nur Dienste sehen will, die auf Verbindungen warten, ergänze ich die Zeile zu:

lsof -iTCP | grep LISTEN

Interessiert mich dagegen nur der Datenverkehr auf einem ganz bestimmten Port, etwa für SSH, zeigt mir »lsof -i :22« alle mit dem Port 22 assoziierten Verbindungen an.

Clever filtern, um zu wissen, was rausgeht

Auch ausgehende Verbindungen zu einem bestimmten Server kann ich ausfiltern. Dazu hänge ich an den »-i« -Parameter ein »@« gefolgt vom Namen oder der IP-Adresse des Zielsystems an, Abbildung 1 zeigt ein Beispiel. Diesen Filter zu verfeinern gelingt, indem ich die Nummer des Zielports anhänge:

Abbildung 1: Ausgehende Verbindungen in Richtung eines bestimmten Servers analysieren gelingt mit Anfragen nach dem Schema »lsof -i@example.com«.

Abbildung 1: Ausgehende Verbindungen in Richtung eines bestimmten Servers analysieren gelingt mit Anfragen nach dem Schema »lsof -i@example.com«.

lsof -i@example.com:22

Mit »-a« haben die Lsof-Erfinder um Victor A. Abell an Anwender wie mich gedacht, die gelegentlich Filterfunktionen verketten wollen:

lsof -a -u charly -i@example.com:22

Dieser Befehl listet alle ausgehenden SSH-Verbindungen zum Server Example.com, die Benutzer »charly« aufgebaut hat. Lsof ist also nur auf den ersten Blick unscheinbar, nach dem zweiten und »man lsof« wird es zum unverzichtbaren Werkzeug. (jk)

Der Autor

Charly Kühnast administriert Unix-Systeme im Rechenzentrum Niederrhein in Kamp-Lintfort. Zu seinen Aufgaben gehören die Sicherheit und Verfügbarkeit der Firewalls und der DMZ. Im heißen Teil seiner Freizeit frönt er dem Kochen, im feuchten Teil der Süßwasseraquaristik und im östlichen lernt er Japanisch.

DIESEN ARTIKEL ALS PDF KAUFEN
EXPRESS-KAUF ALS PDFUmfang: 1 HeftseitePreis €0,99
(inkl. 19% MwSt.)
LINUX-MAGAZIN KAUFEN
EINZELNE AUSGABE Print-Ausgaben Digitale Ausgaben
ABONNEMENTS Print-Abos Digitales Abo
TABLET & SMARTPHONE APPS Readly Logo
E-Mail Benachrichtigung
Benachrichtige mich zu:
0 Kommentare
Älteste
Neuste Beste Bewertung
Nach oben