Firmenbrief

20.09.2011

Interessante Linux-Tools für Systemadministratoren - Heute: lsof



Nachdem wir uns in den letzten beiden Teilen der Artikelserie dem Beobachten von Prozessen gewidmet haben (pstree und htop) , ist es nun an der Zeit, von der Beobachtung in die Analyse überzugehen. Welche Dateien hat ein Prozess gerade geöffnet? Welche Aktionen führt der Prozess gerade durch?

Mit lsof („list open files") steht uns genau das richtige Werkzeug für die Beantwortung der ersten Frage zur Verfügung.

Beim Aufruf von lsof ohne Parameter erscheint zunächst eine Liste an geöffneten Verzeichnissen, Unix-Sockets, IP-Sockets und Pipes - vorausgesetzt man ist entweder als root eingeloggt oder aber lsof wurde für die zur Verfügung stehende Linux-Distribution mit dem Flag „HASSECURITY" kompiliert. Im letzteren Fall sieht man dann nur die eigenen Prozesse, wenn man sich nicht als root-Benutzer auf dem System befindet.

Die nun angezeigte Liste beim Aufruf von lsof ist sehr lang und erschlägt uns erst einmal mit einer Flut an Informationen. Um nun zur Prozessanalyse übergehen zu können, müssen wir uns einen Prozess heraussuchen (z. B. mit dem Aufruf von htop oder pstree -Aapnul), die Prozess-ID notieren und anschließend an lsof übergeben. Somit filtern wir auch die lange Ausgabe des ursprünglichen lsof-Aufrufs:

lsof -p 8805

Als Beispiel haben wir uns für die Analyse von OpenOffice.org Writer mit der PID 8805 entschieden, da diese Anwendung auf unserem Rechner aktuell geöffnet ist. In diesem Fall zeigt uns der oben stehende Befehl daher nun eine Liste an Bibliotheken, Schriftarten, Dateien und Ordnern an, die OpenOffice gerade in Zusammenhang mit diesem Prozess verwendet.

Darunter befindet sich auch die Datei, in der wir gerade diesen Beitrag für den Linux Firmenbrief schreiben (Ausgabe angepasst und gekürzt):

soffice.b 8805 vhoebel   [...] interessante_linux_tools_lsof.odt
(In der Originalausgabe ist natürlich auch der volle Pfad zur Datei enthalten.)

lsof kann jedoch noch viel mehr - bei Interesse können Sie mit Hilfe des Kommandos „man lsof" weitere nützliche Schalter entdecken, die Ihnen bei der Analyse von Prozessen helfen können. Versuchen Sie es mal!