Speicherplatz unter Linux analysieren: df, du & ncdu

„No space left on device“ – diese Meldung legt Server lahm. Bevor du in Panik verfällst, hilft ein systematischer Blick auf den Speicher. In dieser Anleitung lernst du, wie du den Speicherplatz unter Linux analysierst: mit df für den Überblick, du für einzelne Verzeichnisse und dem komfortablen ncdu. Außerdem zeigen wir, wie du eine volle Platte wieder frei bekommst.

„No space left on device“ – diese Meldung legt Dienste lahm und lässt Datenbanken abstürzen. Bevor es so weit kommt, solltest du wissen, wie du den Speicherplatz unter Linux analysierst. Die drei Werkzeuge df, du und ncdu arbeiten dabei Hand in Hand: df zeigt dir den Füllstand deiner Dateisysteme, du die Größe einzelner Verzeichnisse und ncdu macht die Suche nach Speicherfressern komfortabel interaktiv.

df: Der Überblick über alle Partitionen

Der Befehl df („disk free“) zeigt dir, wie voll deine Dateisysteme sind. Mit -h werden die Größen menschenlesbar (GB/MB) ausgegeben:

df -h

In der Spalte „Use%“ siehst du sofort, welche Partition volläuft. Das ist immer der erste Befehl bei Speicherproblemen.


du: Verzeichnisse durchleuchten

Weißt du, welche Partition voll ist, findest du mit du („disk usage“) die Verursacher. Dieser Befehl zeigt die Größe der Unterverzeichnisse einer Ebene, absteigend sortiert:

du -h --max-depth=1 /var | sort -rh

So hangelst du dich Ebene für Ebene zum größten Speicherfresser vor. Für das aktuelle Verzeichnis genügt du -sh *.


ncdu: Interaktiv aufräumen

Am komfortabelsten ist ncdu – ein interaktiver Verzeichnis-Browser fürs Terminal. Installiere ihn und starte die Analyse:

sudo apt install -y ncdu
ncdu /

Nach dem Scan navigierst du mit den Pfeiltasten durch die Verzeichnisse, sortiert nach Größe. Mit d löschst du markierte Dateien direkt – ideal zum gezielten Aufräumen.


Große Dateien gezielt finden

Manchmal ist eine einzelne riesige Datei schuld (etwa ein Log). Solche Ausreißer findest du mit find. Der folgende Befehl listet alle Dateien über 500 MB auf:

sudo find / -type f -size +500M -exec ls -lh {} \; 2>/dev/null

Was tun, wenn die Platte voll ist?

Ein paar bewährte Stellen, an denen sich schnell Platz gewinnen lässt:

  • Systemd-Journal verkleinern: sudo journalctl --vacuum-size=200M begrenzt die Logs auf 200 MB.
  • Paket-Cache leeren: sudo apt clean entfernt heruntergeladene Paketarchive.
  • Docker aufräumen: Ungenutzte Images und Container sind oft riesig – siehe Docker aufräumen.
  • Container-Logs begrenzen: Wie du das dauerhaft löst, steht in Docker Logs verwalten.

Nicht vergessen: Inodes

Ein Sonderfall: Die Platte meldet „voll“, obwohl df -h freien Platz zeigt. Dann sind wahrscheinlich die Inodes aufgebraucht – das passiert bei sehr vielen kleinen Dateien. Prüfe sie mit:

df -i

Ist die Inode-Nutzung bei 100 %, hilft nur das Löschen vieler kleiner Dateien (häufig in Cache- oder Session-Verzeichnissen).


df, du und ncdu im direkten Vergleich

Die drei Befehle beantworten unterschiedliche Fragen. df liefert die Vogelperspektive über alle eingehängten Dateisysteme, du geht in die Tiefe einzelner Ordner, und ncdu verbindet beides mit einer navigierbaren Oberfläche im Terminal.

WerkzeugBeantwortetStärke
df -hWie voll ist welches Dateisystem?Schneller Überblick
du -shWie groß ist dieser Ordner?Gezielte Analyse
ncduWo genau liegen die Speicherfresser?Interaktiv, sortiert

Der Klassiker: gelöschte Datei belegt noch Platz

Ein häufiges Rätsel: df meldet eine volle Platte, aber du findet die entsprechenden Daten nicht. Die Ursache ist meist eine gelöschte Datei, die von einem laufenden Prozess noch offen gehalten wird – der Speicher wird erst freigegeben, wenn der Prozess endet. Solche Fälle spürst du mit lsof | grep deleted auf und löst sie, indem du den Dienst neu startest.

Ein zweiter Klassiker sind Inodes: Ist deren Zahl erschöpft, meldet Linux „no space“, obwohl df -h noch freien Platz zeigt. Prüfe das mit df -i, wenn viele kleine Dateien im Spiel sind.


Speicherfresser systematisch aufspüren

Gehe bei vollen Platten immer von oben nach unten vor. Zuerst gibt df -h das betroffene Dateisystem preis, dann arbeitest du dich mit du oder ncdu in die Tiefe. Typische Verdächtige sind schnell identifiziert. Ein bewährter Einzeiler ist du -h --max-depth=1 / | sort -rh | head: Er listet die größten Verzeichnisse der obersten Ebene sortiert auf, sodass du dich Ordner für Ordner nach unten hangeln kannst, bis der Übeltäter feststeht.

Zwei Bereiche lohnen einen festen Blick. Das systemd-Journal kann über die Zeit mehrere Gigabyte anwachsen – prüfe seinen Verbrauch mit journalctl --disk-usage und begrenze ihn dauerhaft über SystemMaxUse in der Journald-Konfiguration. Und bei Docker verschafft dir docker system df einen kompakten Überblick, wie viel Speicher Images, Container und Volumes jeweils belegen, bevor du mit docker system prune gezielt aufräumst. Wer regelmäßig statt reaktiv prüft, verwandelt hektische Notfallaktionen in eine planbare Routine.

  • Log-Dateien unter /var/log, die nicht rotiert werden.
  • Verwaiste Docker-Images und Volumes unter /var/lib/docker.
  • Alte Paket-Caches, etwa unter /var/cache/apt.
  • Vergessene Backups oder große Dateien im Home-Verzeichnis.

Häufige Fragen

Die häufigsten Fragen zur Speicheranalyse unter Linux.

Warum zeigen df und du unterschiedliche Werte?

df misst auf Ebene des Dateisystems inklusive reservierter Blöcke und offener, aber gelöschter Dateien. du summiert nur sichtbare Dateien. Abweichungen sind daher normal.

Wie installiere ich ncdu?

Unter Debian und Ubuntu genügt sudo apt install ncdu. Das Werkzeug ist klein und in praktisch jedem Paket-Repository verfügbar.

Wie finde ich die größten Dateien in einem Verzeichnis?

Mit du -ah /pfad | sort -rh | head -n 20 bekommst du die zwanzig größten Einträge sortiert. Noch bequemer geht es interaktiv mit ncdu /pfad.


Fazit

Mit der Kombination aus df (Überblick), du (Details) und ncdu (interaktiv) findest du jeden Speicherfresser unter Linux zuverlässig. Denk bei „voller“ Platte trotz freien Speichers an die Inodes. Wenn du zusätzlichen Platz brauchst, hilft dir eine weitere Festplatte einzubinden.

Siehe auch  Enhance Web Panel - Große Datenbank über SSH exportieren
Nach oben scrollen