ncdu unter Ubuntu: Speicherfresser im Terminal aufspüren

Einführung: Speicheranalyse ohne Rätselraten

Neigt sich der freie Festplattenspeicher auf einem Linux-Server dem Ende zu, ist schnelles und zielgerichtetes Handeln gefragt. Statt sich mühsam durch unübersichtliche Ausgaben klassischer Befehle wie du zu kämpfen, bietet ncdu (NCurses Disk Usage) eine interaktive Konsolenoberfläche, mit der sich speicherintensive Verzeichnisse im Handumdrehen lokalisieren lassen. In dieser Anleitung führen wir Sie praxisnah von der Paketinstallation über das Aufspüren großer Datenmengen bis hin zum Export von Analyseberichten.

Paketinstallation und wichtigste Befehlsparameter

Die Bereitstellung des Werkzeugs unter Ubuntu erfolgt unkompliziert über das zentrale Paketmanagement. Zunächst aktualisieren wir die lokalen Paketquellen und spielen anschließend die Binärdatei ein:

Paketquellen aktualisieren und ncdu installieren

Ein kurzer Funktionscheck stellt sicher, dass das Tool einsatzbereit ist und die installierte Release-Version zurückgibt.
⚙️ [Zentrale Parameter im Überblick]

-v : Gibt die aktuell installierte Versionsnummer des Programms aus.
-x : Begrenzt den Scanvorgang strikt auf das aktuelle Dateisystem und ignoriert weitere Einhängepunkte (Mountpoints).
-r : Startet den Nur-Lese-Modus, um versehentliche Dateilöschungen in der Oberfläche wirksam zu unterbinden.
-q : Verringert die Aktualisierungsrate der Bildschirmausgabe während des Scanvorgangs, was den Durchsatz spürbar beschleunigt.
-o : Exportiert die ermittelten Nutzungsdaten in eine strukturierte Zieldatei.
-f : Lädt zuvor mittels -o generierte Berichtsdaten direkt in den interaktiven Betrachter.

Versionsabfrage von ncdu

Testumgebung vorbereiten: Strukturierte Dummy-Daten erzeugen

Um die Navigation und Sortiermechanismen von ncdu realitätsnah zu testen, bauen wir im Benutzerverzeichnis eine mehrstufige Ordnerhierarchie auf:

Verzeichnisstruktur für Testdaten anlegen

Innerhalb des Verzeichnisses logs simulieren wir eine anwachsende Protokolldatei mit 20 Megabyte Umfang über den Befehl fallocate -l 20M ~/ncdu_practice/logs/app_error.log:

20MB Dummy-Logdatei erzeugen

Für das Archiv-Szenario erzeugen wir im Ordner backups einen Datenbank-Dump von 50 Megabyte mittels fallocate -l 50M ~/ncdu_practice/backups/db_backup.tar.gz:

50MB Datenbank-Archivdatei anlegen

Zusätzlich platzieren wir unter media/videos einen Videoclip mit 100 Megabyte, indem wir fallocate -l 100M ~/ncdu_practice/media/videos/demo_clip.mp4 ausführen:

100MB Videodatei generieren

Zur Überprüfung des erzeugten Verzeichnisbaums und der zugehörigen Dateigrößen listen wir alle Elemente rekursiv im menschenlesbaren Format via ls -lhR ~/ncdu_practice auf:

Rekursive Auflistung der Testdateien mit ls

Interaktive Speicheranalyse im Terminal durchführen

Nun starten wir die grafische Auswertung des Testordners ~/ncdu_practice. Der Schalter -q dämpft dabei unnötig häufige Terminal-Refreshes und beschleunigt den Scan: ncdu -q ~/ncdu_practice.
Die ncurses-Oberfläche listet Verzeichnisse und Dateien absteigend nach ihrem tatsächlichen Platzverbrauch auf. Ein integrierter Balkenindikator verdeutlicht visuell, wo die größten Kapazitätsfresser liegen.

Interaktive Verzeichnisanalyse mit ncdu

Ein typisches Szenario im Serveralltag ist die Prüfung von /var/log. Um zu verhindern, dass die Analyse versehentlich auf gemountete Netzlaufwerke oder externe Partitionen übergreift, erzwingt der Parameter -x den Verbleib im selben Dateisystem: ncdu -x /var/log.
Auf diese Weise bleibt die Abfrage auf die tatsächliche Systempartition beschränkt und liefert präzise Werte für Systemverwalter.

Dateisystemspezifische Analyse von var-log

Analyseergebnisse exportieren und offline auswerten

Gerade auf Produktionsservern empfiehlt es sich oft, die Scanergebnisse in eine Datei umzuleiten, um sie später oder auf einem anderen Rechner auszuwerten. Mit dem Befehl ncdu -1xo- ~/ncdu_practice > ~/ncdu_practice/disk_usage.json exportieren wir die Strukturdaten im JSON-Format.
Hierbei sorgt -1 für eine einzeilige Statusanzeige während des Scans, während -o- die Daten sauber auf die Standardausgabe (stdout) schreibt, von wo aus sie in die Zieldatei fließen.

Scanergebnisse als JSON-Datei exportieren

Über head -n 5 ~/ncdu_practice/disk_usage.json verifizieren wir die Integrität der geschriebenen JSON-Struktur anhand der ersten fünf Zeilen:
Der Dateikopf belegt das Datenformat, Versionsmetadaten sowie Zeitstempel und bereitet den nachfolgenden hierarchischen Verzeichnisbaum auf.

Ausgabe der ersten Zeilen der JSON-Exportdatei

Um diesen exportierten Datensatz erneut in der gewohnten interaktiven Konsolenumgebung zu durchforsten, genügt der Aufruf von ncdu -f ~/ncdu_practice/disk_usage.json.
Da hierbei keine erneuten I/O-Lesezugriffe auf das Dateisystem anfallen, lassen sich selbst umfangreiche Verzeichnisbäume von Remote-Systemen ressourcenschonend und völlig unabhängig vom Live-Betrieb untersuchen.

Laden und Durchsuchen der exportierten Datei in ncdu

Mit ncdu steht Systemverwaltern unter Ubuntu ein leistungsfähiges, ressourcensparendes Hilfsmittel zur Verfügung, um Plattenengpässen gezielt auf den Grund zu gehen. Nutzen Sie die interaktive Filterung und Exportmechanismen, um Serverkapazitäten auch in anspruchsvollen Produktionsumgebungen nachhaltig zu überwachen.