In vielen Fällen ist "lsof" nicht auf den Rechnern installiert, auf denen ich arbeiten muss, aber die "Funktion" von lsof wird sehr benötigt (z. B. unter AIX). : \
Gibt es irgendwelche "lsof" ähnlichen Anwendungen in der Nicht-Windows-Welt?
UPDATE: Zum Beispiel: Ich muss wissen, dass bei welchen Prozessen das Verzeichnis "/ home / username" verwendet wird.
process
open-files
administration
lsof
LanceBaynes
quelle
quelle
Antworten:
Ich weiß
fuser
, ob auf Ihrem System verfügbar ist.quelle
sudo fuser -vm / 2>&1 | awk '$3 ~ /f|F/' | less
kann alle Prozesse anzeigen, auf denen offene Dateien im Dateisystem gemountet sind/
. Weitere Informationen finden Sie in der Manpage.sudo fuser -vm / 2>&1 | awk '$3 ~ /f|F/' | while read user pid flags rest; do printf '%10s %10s %10s %s\n' $user $pid $flags "$(</proc/$pid/cmdline)"; done | less
Der Unix Rosetta Stone ist eine gute Ressource für diese Art von Fragen. Es werden einige Alternativen für lsof genannt (siehe unten). Beachten Sie jedoch, dass lsof de facto die Standardanwendung für das ist, was es tut.
Wenn Sie nur die Prozess-IDs suchen möchten, für die eine bestimmte Datei geöffnet ist, können Sie sie
fuser
auf jedem POSIX-kompatiblen System verwenden.Auf Betriebssystemen mit einem
/proc
Verzeichnis können Sie die von einem Prozess geöffneten Dateien (in umgekehrter Reihenfolge zurlsof
häufigsten Betriebsart) über information in abfragen/proc
. Einige Betriebssysteme haben Befehle dafür:procfiles
wird mit dem System ausgeliefert (seit AIX 5.2). Siehe auch Aktualisierung der AIX 5.2-Leistungstools und Verwendung sowie Beispiele für die Befehle lsof, pfiles und procfiles .pfiles
(existiert seit 2.5 ).quelle
Wenn Sie zufällig Solaris ausführen, ist eine Alternative zu Solaris,
lsof
die nicht standardmäßig installiert ist und unter ZFS möglicherweise nicht funktioniert, die folgendepfiles
.z.B:
pfiles /proc/*
quelle
Meine Version, in der nur ein bisschen weniger Dienstprogramme ausgeführt werden:
Zugegeben, es werden möglicherweise nicht alle Eckfälle behandelt, aber es funktioniert in meinem Anwendungsfall.
quelle
Dies sollte den Trick machen. Es werden alle Dateideskriptor-Zuordnungen mit Ausnahme derjenigen angegeben, die:
Wenn Sie bereits wissen, dass Ihnen nur die Zuordnungen für bestimmte Programme wichtig sind, können Sie stattdessen Folgendes verwenden:
quelle
Manchmal
lsof
ist in installiert/usr/sbin
Wenn dies
/usr/sbin
nicht zu Ihren Aufgaben gehört$PATH
, kann es sein, dass Sie den installierten Befehl verpassen.Überprüfen Sie es mit
quelle