Du zeigt dir nur die Summen pro Ordner, nicht pro Benutzer.
/home/example_user/
Dies kann funktionieren, wenn Sie beispielsweise die Gesamtgröße von möchten und wenn nur dieser example_user Dateien in diesem Ordner hat. Wenn andere Benutzer Dateien enthalten, ergibt dies nicht die Größe aller Dateien, deren Eigentümer Sie sind, sondern die Gesamtgröße aller Dateien in diesem Ordner.
So erhalten Sie die Informationen pro Benutzer:
- Wenn Sie Kontingente aktiviert haben, verwenden Sie diese Befehle.
- Verwenden Sie find , um alle Verzeichnisse zu durchsuchen, in denen Sie Ihre Dateien zählen möchten. Verwenden Sie die UID, um nur Ihre Dateien auszuwählen, und halten Sie ein assoziatives Array in awk, um die Summen zu zählen.
find /path/to/search/ -user username_whos_files_to_count -type f -printf "%s\n" | awk '{t+=$1}END{print t}'
Beachten Sie, dass hierfür eine GNU-Find-spezifische Erweiterung verwendet wird.
- Der erste Befehl durchsucht alle Dateien und Verzeichnisse in
/path/to/search/
.
-type f
stellt sicher, dass Sie nur Dateien auswählen, andernfalls zählen Sie auch die Größe der Verzeichnisse. (Versuchen Sie, einen leeren Ordner zu erstellen. Wahrscheinlich wird 4 KB Speicherplatz verwendet.)
-user username_whos_files_to_count
Wählt nur die Ergebnisse eines Benutzers aus
-printf "%s\n"
druckt die Größe.
Wenn Sie nur den ersten Teil davon ausführen, erhalten Sie eine Liste mit Zahlen. Das sind die Dateigrößen. (Alles andere wird entfernt, dank des Druckbefehls% s wird nur die Größe gedruckt.)
Wir können dann alle diese Zahlen hinzufügen, um eine Zusammenfassung zu erhalten. Im Beispiel geschieht dies mit awk.
du -sch
ist ein einfacher Befehl, der oft verwendet wird. Es ist viel schwieriger herauszufinden, wem was gehörte, als die Dinge gemischt wurden, obwohl dies als Einzeiler möglich ist. Ich habe es einmal benutzt, aber ich hatte heute Probleme, es zu rekonstruieren.Ein guter Befehl ist, um die gesamte Verwendung durch einen bestimmten Benutzer zu finden:
Sie können je nach Bedarf weitere Änderungen vornehmen. Beispielsweise möchte ich die Verwendung häufig nach Ordnern zusammenfassen. Folgendes funktioniert gut:
Dadurch werden nur Verzeichnisse auf einer Ebene gefunden, die vom Benutzer begrenzt werden, das übergeordnete Verzeichnis ausgeschlossen und am Ende jedes Verzeichnis und eine Zusammenfassung gedruckt.
quelle