Wenn Sie offen für Pipe sind, wie wäre es damit:
lsof | perl -pe 's / \ s \ s + / / g' | cut -d '' -f3 | grep -v ^ USER | sortieren | uniq -c | sort -rn
Ich habe dies auf MacOS 10.10.2 (Yosemite), OEL 6.6 und Ubuntu 10.04.01 getestet.
Ich suche einen Befehl, der mir die Anzahl der offenen Dateien für jeden Benutzer auflistet, absteigend sortiert.
Zum Beispiel lsof -u postgres | wc -
würde sie nur für den Postgres-Benutzer aufgelistet, aber ich möchte sehen, bei welchem Benutzer ich Handler verlieren darf.
Hinweis: Einige Fragen beziehen sich möglicherweise auf PIDs anstelle von Benutzernamen, aber ich suche immer noch nach einem Einzeiler.
Wenn Sie offen für Pipe sind, wie wäre es damit:
lsof | perl -pe 's / \ s \ s + / / g' | cut -d '' -f3 | grep -v ^ USER | sortieren | uniq -c | sort -rn
Ich habe dies auf MacOS 10.10.2 (Yosemite), OEL 6.6 und Ubuntu 10.04.01 getestet.
Ich lief Warren Lavallees Skript und fand es schwer zu interpretieren.
Stattdessen habe ich das ursprüngliche Skript so erweitert, dass es alle Benutzer schrittweise durchläuft und Folgendes gibt: -
for f in $(sed</etc/passwd 's/:.*$//g'); do ( echo -n $f ' '; lsof -u $f 2>/dev/null | wc -l ); done | grep -v ' 0$'
Dies funktioniert gut auf Ubuntu 14.04. Das Finale grep
entfernt die Null-Einträge, da viele Benutzer keine aktiven Prozesse haben. Sie können auch | sort -rnk 2
am Ende des Befehls hinzufügen, um in absteigende Dateizählreihenfolge zu sortieren.
Sie müssen sich in einer Root-Shell befinden, um sicherzustellen, dass Sie die Dateien aller Benutzer sehen können.