Tutorial: Speicherplatzmanagement: Die größten Dateien via SSH unter Ubuntu/Debian finden

Inhalt
Eine effektive Serverwartung heißt, die Festplattenbelegung regelmäßig im Blick zu behalten. Wenn eine Partition ihre Kapazitätsgrenze erreicht, ist die Identifizierung großer Dateien der effizienteste Weg, um Speicherplatz freizugeben. Der folgende Leitfaden beschreibt zwei Methoden zur Lokalisierung großer Dateien unter Ubuntu und Debian über die Kommandozeile.
Methode 1: Verwendung des find-Befehls
Der find-Befehl ist äußerst effizient, um Dateien zu lokalisieren, die einen bestimmten Schwellenwert überschreiten. Dies ist hilfreich, wenn nach Dateien gesucht wird, die größer als ein definiertes Limit (z. B. 500 MB) sind.

find /pfad/zum/verzeichnis -type f -size +500M -exec ls -lh {} +
/pfad/zum/verzeichnis: Der Startpunkt für die Suche.-type f: Legt fest, dass nur Dateien (keine Verzeichnisse) aufgelistet werden sollen.-size +500M: Filtert nach Dateien, die größer als 500 Megabyte sind.-exec ls -lh {} +: Führt denls -lh-Befehl aus, um Details anzuzeigen.
Methode 2: Verwendung der du– und sort-Befehle
Um die “Top N” der größten Dateien oder Verzeichnisse zu identifizieren, ist die Kombination von du (disk usage) und sort die bevorzugte Vorgehensweise. Dies erzeugt eine sortierte Liste.
du -ah /pfad/zum/verzeichnis | sort -rh | head -n 10
du -ah: Berechnet die Festplattennutzung für alle Dateien und Verzeichnisse in menschenlesbarem Format.sort -rh: Sortiert die Ergebnisse nach Größe (absteigend, die größten zuerst) und interpretiert die Einheiten (z. B. K, M, G).head -n 10: Begrenzt die Ausgabe auf die ersten 10 Ergebnisse.
Beispielausgabe
Die Ausführung des du-Befehls erzeugt eine Ausgabe wie die folgende (Verzeichnisse, die du -ah ebenfalls auflistet, sind hier weggelassen; in einem echten Lauf steht das Startverzeichnis selbst als größter Eintrag ganz oben):
4,2G /var/lib/docker/containers/a1b2c3d4/a1b2c3d4-json.log 2,1G /var/log/syslog 1,8G /home/user/backups/db_backup.sql 950M /usr/share/zoneinfo/data.bin ...
Fragen und Antworten
Was kann sonst dazu führen, dass eine Partition als voll gilt, obwohl die beiden Methoden aus dem Artikel nichts ausreichend Großes finden?
Zwei Dinge, und sie decken fast jeden Fall ab, in dem find und du nichts finden.
Das erste sind Inodes, zu prüfen mit df -i. Ein Dateisystem kann nach Bytes zu sechzig Prozent belegt sein und trotzdem keine freien Inodes mehr haben; Schreibvorgänge scheitern dann mit derselben Meldung wie bei einer vollen Festplatte. Die Ursache hat fast immer dieselbe Form: Millionen winziger Dateien an einer Stelle, typischerweise eine Mail-Warteschlange, ein Verzeichnis für Sitzungsdaten oder ein Cache ohne Rotation. Weder find -size noch du führt sie weit oben auf, weil jede einzelne für sich verschwindend klein ist.
Das zweite sind gelöschte, aber noch geöffnete Dateien: Ein Log, das entfernt wurde, während ein Prozess es noch offen hält, behält seine Blöcke, bis dieser Prozess die Datei schließt oder neu startet. df zählt den Platz mit, du sieht die Datei nicht, und genau die Differenz zwischen beiden ist das Erkennungszeichen. lsof +L1 listet solche Dateien auf. Mit diesen beiden Prüfungen und den beiden Methoden aus dem Artikel bleibt auf der Platte kein Versteck mehr.