Ich muss herausfinden, wie viel Speicherplatz von jedem Benutzer im Netzwerk belegt wird. Ich kenne df
und du
Befehle: Ich könnte das gesamte Dateisystem auflisten und die Ausgabe AWK, aber ich frage mich, ob es einen Standardbefehl gibt.
Die Ausgabe, die ich suche, ist:
usr1 xMb
usr2 yMb
[...]
Total zMb
Irgendwelche Ideen?
Vielen Dank!
PS. Red Hat Linux EE
linux
hard-drive
usage
disk-space-utilization
Escualo
quelle
quelle
Eine weitere schöne Lösung habe ich hier gefunden . Navigieren Sie zum Verzeichnis von Interesse und run (alternativ Wechsel
.
zu welcher auch immer Verzeichnis interessiert, zum Beispiel ,/home/
):quelle
-printf "%u\t%s\n"
und,awk -v OFS="\t"
wenn Sie glauben, jemals einen Benutzernamen mit Leerzeichen darin zu haben.Oder um die problematischen Benutzer zu finden (auch Verzeichnisse),
und für Solaris:
Dies gibt Ihnen eine Liste der 25 größten Verzeichnisse. Nicht ganz das, wonach Sie gefragt haben, aber ich benutze es die ganze Zeit.
quelle
Was wir an vielen Orten tun, ist das Quotensystem zu verwenden, aber absurd hohe Quoten festzulegen. Auf diese Weise profitieren Sie von einer schnellen Berichterstellung. An einem Standort verfügt jeder Benutzer über 1 TB "Kontingent" -Speicherplatz.
Wir erhöhen das Kontingent regelmäßig, wenn die zu wartende Festplatte wächst - anfangs waren es 30 GB pro Benutzer, was zu dieser Zeit absurd hoch war.
quelle
Es gibt keinen solchen Befehl. Dazu müssen Sie einige Shell-Befehle schreiben.
quelle
Die Methode von ThorstenS scheint mir mehr Arbeit zu sein, als sie benötigt, da sie mehrmals ausgeführt wird. Für einen Einzelfall würde ich nur einen Suchbefehl ausführen und den Eigentümer und die Größe jeder Datei ausgeben und dann eine Art Magie für diese Datei ausführen.
Der Fund würde so etwas wie den Benutzernamen (oder die ID-Nummer ohne Benutzernamen) und den in Bytes verwendeten Speicherplatz in einer durch Null-Byte getrennten Datei zurückgeben:
Sie können das
\0
durch etwas ersetzen, mit dem Sie möglicherweise etwas einfacher arbeiten können, z. B. Tabulatoren oder Zeilenumbrüche, aber das wäre weniger sicher, wenn Sie funky Dateinamen haben.Wenn Sie noch effizienter sein möchten, können Sie die Ausgabe an ein Skript weiterleiten, das sie während der Ausführung verarbeitet. Dies wäre jedoch etwas aufwändiger und müsste beim ersten Mal richtig ausgeführt werden.
quelle
Ich habe es geschafft :) Nicht schnell du, aber funktioniert:
Eine große Geschwindigkeitssteigerung wird auftreten, wenn wir nur nach UIDs suchen, die> 1000 sind:
quelle