Linux-lsof: So listen Sie Dateien auf und analysieren Ihr System

Das Linux-Tool lsof ermöglicht es Ihnen, Ihr System zu überwachen und eventuelle Probleme schneller zu erkennen. Das Programm listet dafür geöffnete Dateien auf und kann durch Filter und Optionen für Ihre Zwecke optimiert werden.

Was ist Linux-lsof?

Wenn Sie unter Linux Ihr System überwachen und analysieren möchten, ist ein lsof sehr einfach bedienbares Tool. Das Programm, das bereits 1994 von Vic Abell entwickelt und veröffentlicht wurde, ist Open Source und gehört bei zahlreichen Linux-Distributionen, etwa Debian oder Ubuntu, zur Standardinstallation. lsof steht für „List open files“, also „Geöffnete Dateien auflisten“. Das Programm liefert Informationen zu Dateitypen, die im jeweiligen Moment von laufenden Prozessen geöffnet werden oder wurden. Neben regulären Dateien können dies u. a. Verzeichnisse, Sockets, Laufwerke oder Ports sein. Die unterschiedlichen Prozesse und Dateien werden dann übersichtlich aufgeführt.

Wie funktioniert Linux-lsof?

Sollte lsof nicht auf Ihrem System vorhanden sein, installieren Sie es einfach mit diesem Linux-Befehl:

$ apt-get install lsof
bash

Danach können Sie das Tool nutzen, um sich einen Überblick über Arbeitsprozesse auf Ihrem Rechner zu verschaffen. Dies funktioniert, da unter unixartigen Systemen im Prinzip alles als Datei gesehen wird. Linux-lsof ermöglicht es Ihnen daher, zu überprüfen, welche Prozesse auf eine bestimmte Datei zugreifen.

Wie sieht die Syntax von lsof aus?

Sie lsof möchten verwenden? Dies ist die grundsätzliche Syntax des entsprechenden Befehls:

$ lsof [Option] <Format>
bash

Zwar können Sie lsof auch komplett ohne Optionen und Filter verwenden; da die darauffolgende Ausgabe allerdings extrem umfangreich und unübersichtlich wäre, ist diese Herangehensweise nicht empfehlenswert.

Welche Optionen und Filter hat Linux-lsof?

lsof kennt zahlreiche Ausgabeoptionen. Dies sind die wichtigsten:

  • -F: Diese Option sorgt dafür, dass alle Ergebnisse in einer einzelnen Spalte ausgegeben werden.
  • -l: Mit dieser Option lässt Sie sich die Benutzer-ID statt des Namens anzeigen.
  • -n: Wenn Sie diese Option verwenden, werden statt Hostnamen die entsprechenden IP-Adressen ausgegeben.
  • -P: So werden anstatt der Service-Namen die Port-Nummern angezeigt.
  • -r [x]: Diese Option sorgt dafür, dass die Ausgabe alle x Sekunden neu ausgeführt wird.
  • -t: Mit dieser Option wird lediglich eine PID-Liste (Process Identifier) ausgegeben.

Zusätzlich kennt lsof zahlreiche Filteroptionen. Dies sind die gängigsten:

  • -a: Dies ist eine logische UND-Verknüpfung statt der ODER-Verknüpfung, die standardmäßig verwendet wird.
  • -c [Prozess]: So erfahren Sie, welche Datei von welchem Prozess verwendet wird.
  • +D /ordner/nutzer: Dieser Filter liefert Informationen zu einem bestimmten Verzeichnis und dessen Nutzer bzw. Nutzerin.
  • /dev/laufwerk: Mit diesem Filter überprüfen Sie ein bestimmtes Laufwerk.
  • -i [TCP/UDP oder alternativ IP-Adresse oder Port]: So bekommen Sie Informationen darüber, welche Prozesse welche Netzwerkdienste nutzen.
  • +L1: Mit diesem Filter erhalten Sie Informationen über bereits gelöschte Dateien.
  • +p PID: Dies liefert Ihnen Informationen welche Datei von welcher PID genutzt wird.
  • /pfad/datei: Mit dieser Option erhalten Sie Informationen über eine bestimmte Datei.
  • -u [Anwender]: So erfahren Sie, welche Anwenderin bzw. welcher Anwender welche Dateien nutzt.

Wofür wird Linux-lsof verwendet?

Abschließend zeigen wir Ihnen anhand einiger Beispiele, wie und wofür lsof genutzt wird.

$ lsof -u root
bash

Auf diese Weise können Sie sich alle Dateien anzeigen lassen, die Root aktuell offenhält.

$ lsof /mount/path
bash

Häufig wird lsof verwendet, um zu überprüfen, welche Programme den mount-Befehl unterbinden. Dieser kann nicht durchgeführt werden, wenn Dateien noch geöffnet sind.

$ lsof -n -i
bash

So lassen Sie sich alle aktuell offenen Ports auflisten.