Plattenplatz auf Linux mit ncdu analysieren

Damit der Server richtig läuft, darf die Platte nicht volllaufen. Doch manchmal haben wir das Problem, dass wir nicht wissen, wo Plattenplatz genau verbraucht wird. In der folgenden Anleitung lernen wir, wie wir mit dem Tool ncdu große Dateien und Ordner finden

ncdu installieren und nutzen

Das folgende Tutorial wurde auf einem Ubuntu 20.04 Betriebssytem geprüft. Für die Installation des Pakets, als auch die Analyse, sollte das Programm mit root Rechten laufen, um Berechtigungsprobleme bei Ordnern auszuschließen.

ncdu kann einfach über den Paketmanager apt installiert werden:

apt update
apt install ncdu

Jetzt ist ncdu installiert und wir können es nutzen. Dafür wechseln wir zunächst in das root-Verzeichnis und starten anschließend das Programm:

cd /
ncdu

Jetzt scannt ncdu das gesamte Filesystem und listet die Ordner unter „/“ der Größe nach auf:

Die Ordner werden der Größe nach aufgelistet. In diesem Fall verbraucht der Ordner „hier“ sehr viel Plattenplatz

Jetzt können wir mit der Enter-Taste und den Pfeiltasten durch die Order navigieren:

Jetzt haben wir herausgefunden, dass die Datei „Platzfresser“ im Ordner „/hier/ist/eine/große/dateiversteckt“ für die große Plattenauslastung verantwortlich ist.

ncdu-diff installieren und nutzen

Manchmal haben wir das Problem, dass die Platte immer weiter anwächst und wir nicht wissen, welche Dateien/Ordner wachsen. Hierfür nutzen wir das Tool ncdu-diff.

Beispielsituation: Wir wissen, dass die Platte jede Nacht um 3 GB anwächst. Daher führen wir jetzt abends folgenden Befehl aus:

ncdu -x / -o ncdu_alt

Mit diesem Befehl leiten wir die Ausgabe vom ncdu in eine Datei um, damit wir diese später wieder auslesen können

Am nächsten Tag führen wir den gleichen Befehl nochmals aus ( die Ausgabe wird in eine andere Datei geschrieben):

ncdu -x / -o ncdu_neu

Jetzt installieren wir ncdu-diff. Leider kann dieses Tool nicht einfach über den Paketmanager installiert werden. Dafür nutzen wir das Github-Repository ncdu-diff.

Zunächst müssen wir einige zusätzliche Pakete installieren:

apt install ncdu make gcc libncurses5-dev libncursesw5-dev autoconf unzip pkg-config

Mit der folgenden Befehlskette laden wir das Progamm herunter und kompilieren es.

cd /tmp && wget https://github.com/lilydjwg/ncdu-diff/archive/refs/heads/master.zip && unzip master.zip && cd ncdu-diff-master && autoreconf -i && ./configure && make && make install && cp ncdu-diff /usr/local/bin && cp ncdu-diffdir /usr/local/bin

Jetzt erstellen wir eine weitere ncdu Datei mithilfe von ncdu-diff. In dieser Datei stehen dann die Unterschiede beider Dateien:

ncdu-diff ncdu_alt ncdu_neu> ncdu_diff

Zuletzt lesen wir diese Datei noch mit ncdu aus:

ncdu -f ncdu_diff

Jetzt wissen wir, dass der Ordner „ordner2“ seit gestern um 3GB gewachsen ist. Jetzt haben wir einen Anhaltspunkt, um herauszufinden, welches Programm für das Plattenwachstum verantwortlich ist.

Weitere interessante Artikel zu Linux-Systemen finden Sie in unserem Blog

Falls Sie weitere Fragen haben, können Sie uns kontaktieren.