Platzfresser auf der Kommandozeile entlarven

Aus LinuxUser 06/2018

Platzfresser auf der Kommandozeile entlarven

© Stanislav Duben, 123RF

Flinker Jäger

Mit der Erweiterung des Befehls Du ist Ncdu als Admin-Werkzeug prädestiniert und spart viel Zeit bei der Festplattenpflege.

Festplatten unterstützten klaglos unseren archaischen Jäger-und-Sammler-Trieb. Das führt oft dazu, dass sich auch die größte Festplatte binnen kürzester Zeit füllt. Selbst wenn Sie Datensparsamkeit üben, kann beispielsweise der Dienst hinter der versteckten Datei .xsession-errors über Nacht die Platte bis zum Rand mit GBytes an Fehlermeldungen füllen, und der Rechner verweigert einen Neustart.

Spätestens dann ist es höchste Zeit, sich einen Überblick zu verschaffen, was zu diesem Füllstand der Platte geführt hat. Desktop-Umgebungen wie Plasma oder Gnome bringen dafür grafische Werkzeuge mit, wie etwa Qdirstat, Filelight oder Baobab.

Wenn aber wie in obigem Beispiel die Platte durch einen Fehler komplett vollgelaufen ist, lässt sich die grafische Oberfläche nicht mehr erreichen. Sie müssen dann die zu löschenden Daten in einem Terminal identifizieren, um den Rechner wieder zum Durchstarten zu bewegen.

Überall verfügbar

Linux verfügt über verschiedene Befehle, um Sie hierbei zu unterstützen. Dazu zählen etwa Du und Df, die im Zusammenspiel mit vielen Optionen Platzproblemen aller Art auf die Spur kommen. Wesentlich einfacher klappt das allerdings mit dem weniger bekannten Programm Ncdu [1]. Der Name steht für Ncurses Disk Usage und beschreibt die Tatsache, dass Ncdu das klassische Du durch die textbasierte Benutzeroberfläche Ncurses [2] aufbohrt.

Ncdu funktioniert nicht nur lokal im Terminal bestens, sondern agiert auch problemlos über eine SSH-Verbindung. Das bereits seit 2007 entwickelte, in C geschriebene Werkzeug arbeitet auf allen Posix-konformen Systemen gleich. Es gibt Pakete stehen für viele Linux-Distributionen sowie für BSD, Solaris, Cygwin und MacOS. Falls Ncdu also nicht gleich vorinstalliert mit der verwendeten Distribution kommt, lässt es sich bequem über das Paketmanagement nachinstallieren.

Das Programm ist nur wenige KByte groß und unterliegt einer MIT-Lizenz. Zum Bedienen benötigen Sie keine Maus; Sie steuern Ncdu am einfachsten per Tastatur. Beim Aufruf mit dem Befehl ncdu nimmt die Anwendung ihre Tätigkeit immer in dem Verzeichnis auf, in dem Sie sich im Terminal gerade befinden, sofern Sie keinen Pfad angeben. Um lediglich die Festplattenbelegung zu begutachten, genügt es, Ncdu mit Benutzerrechten zu starten. Möchten Sie auch Daten löschen, so brauchen Sie dazu außerhalb Ihres Home-Verzeichnisses Root-Rechte. Um das Programm wieder zu verlassen, drücken Sie [Q].

Einfache Bedienung

Standardmäßig sortiert Ncdu Verzeichnisse und Dateien absteigend der Größe nach (Abbildung 1). Ein Druck auf [S]+ kehrt die Reihenfolge um und zeigt die kleinsten Ordner und Dateien am Anfang. Durch einen Druck auf [G] wechseln Sie durch verschiedene Darstellungsweisen der relativen Größe; in vielen Fällen erweist sich die Angabe in Prozent als am sinnvollsten (Abbildung 2). Insgesamt bietet die Anwendung eine Handvoll Optionen und ein gutes Dutzend Tastaturbefehle, um die Ausgabe zu manipulieren. Die gebräuchlichsten Bedienoptionen führt die Tabelle “Ncdu: Kurzreferenz” auf.

Abbildung 1: In der Standardausgabe stellt Ncdu die relative Größe von Elementen mit Doppelkreuzen dar.

Abbildung 1: In der Standardausgabe stellt Ncdu die relative Größe von Elementen mit Doppelkreuzen dar.


Abbildung 2: Die Taste [G] zeigt alternativ zu dem Graphen die relative Größe von Elementen wahlweise zusätzlich in Prozent, nur in Prozent oder gar nicht an.

Abbildung 2: Die Taste [G] zeigt alternativ zu dem Graphen die relative Größe von Elementen wahlweise zusätzlich in Prozent, nur in Prozent oder gar nicht an.

Taste

Funktion

[Pfeil oben]

in der Ausgabe nach oben

[Pfeil unten]

in der Ausgabe nach unten

[Pfeil rechts]

ins markierte Verzeichnis wechseln

[Pfeil links]

eine Verzeichnisebene nach oben

[Eingabe]

ins markierte Verzeichnis wechseln

[<]

eine Verzeichnisebene nach oben

[A]

absolute Größenanzeige wechseln (effektive Größe/belegter Platz)

[D]

markierte Datei löschen

[E]

versteckte Dateien nicht anzeigen

[G]

relative Größenanzeige wechseln (grafisch/prozentual/beides/keine)

[H]

eine Verzeichnisebene nach oben

[I]

Informationen über ausgewähltes Element

[J]

in der Ausgabe nach unten

[K]

in der Ausgabe nach oben

[L]

ins markierte Verzeichnis wechseln

[N]

nach Dateinamen sortieren

[Q]

Ncdu schließen

[R]

markiertes Element neu kalkulieren

[S]

nach Dateigröße sortieren

[T]

Verzeichnisse vor Dateien sortieren

Neben den üblichen Optionen -h (Abbildung 3) für die Hilfe und -v für die Ausgabe der Versionsnummer gibt es auch -q für den Quiet-Mode. Letzterer hilft bei SSH-Verbindungen Bandbreite zu sparen, indem die Anzeige während des Ladens von Verzeichnissen weniger oft aktualisiert.

Geben Sie beim Aufruf den Schalter -x an, analysiert Ncdu nicht alle Verzeichnisse im Pfad, sondern nur solche mit dem gleichen Dateisystem wie das Ausgangsverzeichnis. So bleiben dort eingehängte andere Dateisysteme beim Scan außen vor, was unter Umständen längere Wartezeiten erspart. Um gezielt Dateien und Verzeichnisse vom Scan auszuschließen, legen verwenden Sie entweder eine Sperrdatei (-X Datei) oder geben via --exclude ein Sperrmuster für Dateinamen an.

Abbildung 3: Die Hilfe &uuml;ber <code>-h</code> zeigt nicht alle Parameter an. Mehr Informationen liefert die Manpage, die Sie mit <code>man ncdu</code> aufrufen.

Abbildung 3: Die Hilfe über -h zeigt nicht alle Parameter an. Mehr Informationen liefert die Manpage, die Sie mit man ncdu aufrufen.

Die Navigation in der Ausgabe von Ncdu erledigen Sie am einfachsten mit den Pfeiltasten. Mit [Pfeil oben]+ und [Pfeil unten]+ oder [K]+ und [J]+ bewegen Sie sich durch den Verzeichnisbaum. Mit [Pfeil rechts]+[Eingabe] oder [L]+ wechseln Sie in das gerade markierte Verzeichnis, mit [Pfeil links]+ oder [<] steigen Sie im Verzeichnisbaum wieder auf.

Feinschliff

In der Standardausgabe steht in der ersten Reihe die absolute Größenangabe zu einem Verzeichnis oder einer Datei. Ganz rechts steht der Namen des Elements, wobei ein Schrägstrich ein Verzeichnis auszeichnet.

In der mittleren Spalte zeigt Ncdu die relative Größe des Elements in Form eines aus Doppelkreuzen zusammengesetzten Balkens. Über einen Druck auf [G] schalten Sie die Darstellungsform der relativen Größe um: Dann erscheinen entweder zusätzlich oder ausschließlich Prozentangaben beziehungsweise gar keine Angabe zur relativen Größe.

Haben Sie bei der Suche überflüssige Platzfresser identifiziert und möchten sie entfernen, so löscht ein Druck auf die Taste [D]+ das gerade markierte Element. Hier ist Vorsicht geboten; der Vorgang lässt sich nicht mehr rückgängig machen. Um ein versehentliches Löschen zu vermeiden, starten Sie Ncdu mit der Option -r (Abbildung 4): Damit verliert während dieses Scans die Taste [D] ihre Wirkung.

Abbildung 4: Um versehentliches L&ouml;schen zu verhindern starten Sie Ncdu mit der Option <code>-r</code> f&uuml;r Read-Only. Ein L&ouml;schversuch wird dann mit einem Hinweis auf die Sperre quittiert.

Abbildung 4: Um versehentliches Löschen zu verhindern starten Sie Ncdu mit der Option -r für Read-Only. Ein Löschversuch wird dann mit einem Hinweis auf die Sperre quittiert.

Ncdu kann seine Ausgabe auch zur späteren Analyse in eine Datei umlenken (Listing 1, Zeile 1), bei Bedarf auch im platzsparenden Archivformat (Zeile 3). Die ungepackte Variante betrachten Sie später mit dem Kommando aus Zeile 2, die gepackte mit dem aus Zeile 4.

Listing 1

$ ncdu /home/Downloads -o Downloads.txt
$ ncdu -f Downloads.txt
$ ncdu -1xo- /home/Downloads | gzip >Downloads.gz
$ zcat Downloads.gz | ncdu -f-

Fazit

Geht es darum, den Platteninhalt eines Systems zu analysieren, um Platzfresser aufzuspüren und zu entfernen, erweist sich Ncdu als extrem nützliches Werkzeug. Das gilt sowohl für den Hausgebrauch als auch für den administrativen Einsatz im Unternehmen. Das schlanke Tool geht dabei flotter zur Sache als seine GUI-Kollegen, die sich zudem bei der Remote-Analyse via SSH schwertun. Ncdu lässt sich zudem problemlos in Skripte einbinden und kann als Cronjob laufen. Deshalb sollte dieses Tool in Ihrem Werkzeugkasten nicht fehlen. 

DIESEN ARTIKEL ALS PDF KAUFEN
EXPRESS-KAUF ALS PDF
LinuxUser 06/2018 KAUFEN
EINZELNE AUSGABE
ABONNEMENTS
TABLET & SMARTPHONE APPS
E-Mail Benachrichtigung
Benachrichtige mich zu:

Hinweis: Dieser Artikel ist älter als ein Jahr, enthaltene Informationen sind möglicherweise veraltet.

0 Kommentare
Älteste
Neuste Beste Bewertung
Inline Feedbacks
Alle Kommentare anzeigen
Nach oben