LW IT Solutions logo LW IT Solutions logo LW IT Solutions
« Blog-Übersicht /IT & Networks/Tutorials / Tutorial: Speicherplatzmanagement: Die größten Dateien via SSH...
Diesen Artikel in anderen Sprachen lesen:

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

Tutorial: Speicherplatzmanagement: Die größten Dateien via SSH unter Ubuntu/Debian finden
Inhalt
  1. Zuerst das Dateisystem bestimmen
  2. Einzeldateien über 500 MiB finden
  3. Belegten Speicher mit du sortieren
  4. Wenn die Zahlen nicht zusammenpassen
  5. Fragen und Antworten
  6. Quellen

Ein fast volles Dateisystem benötigt vor dem Aufräumen eine Diagnose. Große Einzeldateien sind eine mögliche Ursache; viele kleine Dateien, geöffnete gelöschte Dateien oder Besonderheiten des Dateisystems kommen ebenfalls infrage. Die folgenden Befehle untersuchen die Belegung unter Ubuntu und Debian. Dateien werden dabei nicht gelöscht.

Zuerst das Dateisystem bestimmen

Nach der SSH-Verbindung legt ein absoluter Pfad den Prüfbereich fest. Der Beispielpfad muss durch ein vorhandenes Verzeichnis ersetzt werden. df beschreibt das Dateisystem dieses Verzeichnisses, nicht nur den Ordner selbst.

Shell
df -h -- "/pfad/zum/verzeichnis"
df -i -- "/pfad/zum/verzeichnis"

df -h zeigt den Speicherplatz in lesbaren Binäreinheiten. df -i zeigt die Inode-Belegung, soweit unterstützt. Inodes enthalten Dateisystem-Metadaten; ein erschöpfter Inode-Vorrat kann neue Dateien verhindern, obwohl noch Datenblöcke frei sind.

Einzeldateien über 500 MiB finden

Shell
find "/pfad/zum/verzeichnis" -xdev -type f -size +500M -exec ls -lh -- {} +

-type f wählt reguläre Dateien aus. GNU find interpretiert M als 1.048.576 Bytes. +500M bedeutet deshalb größer als 500 MiB, nicht 500 dezimale MB. Verglichen wird die logische Dateigröße. Eine Sparse-Datei mit ausgesparten Bereichen kann logisch groß sein und trotzdem nur wenige Blöcke belegen.

-xdev verhindert den Abstieg in andere Dateisysteme. -exec ls -lh -- {} + übergibt Treffer gruppenweise direkt an ls. Das zeigt Details, sortiert aber nicht nach Größe. Anführungszeichen schützen Leerzeichen im Pfad. Zugriffsfehler sind zu beachten: Nicht lesbare Verzeichnisse machen die Suche unvollständig.

Belegten Speicher mit du sortieren

Shell
du -axh -- "/pfad/zum/verzeichnis" | sort -rh | head -n 10

du -a erfasst Dateien und Verzeichnisse; -h formatiert die Größen, -x bleibt im selben Dateisystem. sort -rh sortiert die lesbaren Größen absteigend, head -n 10 begrenzt die Anzeige auf zehn Zeilen. Verzeichniswerte enthalten bereits den Inhalt. Das Addieren aller angezeigten Zeilen würde deshalb Daten mehrfach zählen. Die Ausgabe enthält die zehn größten Einträge, nicht ausschließlich Einzeldateien.

Die Befehlsfolge dient der interaktiven Sichtung. Zeilenumbrüche in Dateinamen können die zeilenweise Anzeige verfälschen; automatische Verarbeitung benötigt stattdessen NUL-getrennte Datensätze. Große Suchläufe und Sortierungen kosten Zeit, Ein-/Ausgabe und gegebenenfalls temporären Speicher. Ein passendes Startverzeichnis begrenzt den Aufwand.

Dateisystembelegung, logische Dateigröße und belegte Blöcke beantworten unterschiedliche Fragen. Zusatzprüfungen untersuchen fehlende Einträge und Inode-Mangel.
Dateisystembelegung, logische Dateigröße und belegte Blöcke beantworten unterschiedliche Fragen. Zusatzprüfungen untersuchen fehlende Einträge und Inode-Mangel.

Wenn die Zahlen nicht zusammenpassen

df und du erfassen unterschiedliche Größen. Eine Differenz ist ein Hinweis, kein Beweis für eine einzelne Ursache. Nicht erreichbare Pfade, unterschiedliche Einhängegrenzen, Snapshots, reservierter Platz und die interne Dateisystemabrechnung können ebenfalls eine Rolle spielen.

Shell
du --inodes -x --max-depth=1 -- "/pfad/zum/verzeichnis" | sort -nr
lsof -nP +L1

du --inodes hilft beim Auffinden von Verzeichnissen mit vielen Dateisystemeinträgen, auch bei zahlreichen winzigen Dateien. lsof +L1 listet offene Dateien mit weniger als einem Hardlink. Unter Linux kann eine aus dem Verzeichnis entfernte Datei Blöcke belegen, bis die letzte offene Referenz freigegeben ist. Die Sichtbarkeit von Prozessen hängt von Berechtigungen ab; lsof benötigt eventuell eine eigene Installation.

Fragen und Antworten

Übersieht du viele kleine Dateien?

Nein. Verzeichnissummen berücksichtigen den Inhalt; du --inodes ergänzt die Anzahl. Eine Suche nach großen Einzeldateien kann diese Ursache übersehen, die Verzeichnisaggregation dagegen nicht grundsätzlich.

Darf jede große Datei entfernt werden?

Nein. Datenbanken, Anwendungsdateien oder Sicherungen können groß und weiterhin erforderlich sein. Zuständigkeit, Aufbewahrung und vorgesehene Anwendungsabläufe bestimmen die Bereinigung. Bei Logs ist eine eingerichtete Rotation oder ein vorgesehener Wiederöffnungsablauf sinnvoller als das wahllose Löschen aktiver Dateien.

Erklären diese Prüfungen jeden Fall einer vollen Platte?

Nein. Kontingente, Snapshots, Dateisystem-Metadaten oder ein anderes volles Dateisystem können weitere Prüfungen erfordern. Ausgangspunkt sind der tatsächlich betroffene Pfad und dessen Dateisystem.

Lukas Wojcik

Lukas Wojcik

Systems architect and technology enthusiast specializing in scalable tracking solutions, GMP Stack (GA4 & GTM), and robust backend architectures. Advocate for clean code and privacy-first design.

Kontakt

Eine Frage oder eine Idee für ein Webprojekt? Schreib mir kurz, worum es geht. Das Formular nutzt reCAPTCHA zum Schutz vor Spam.

Kommentar schreiben

Erfahrungen mit anderer Hardware oder Firmware und Rückfragen zur Konfiguration sind hier willkommen.

Die E-Mail-Adresse wird nicht veröffentlicht. Pflichtfelder sind mit einem Stern versehen.