df & du — Plattenplatz analysieren unter Linux
Praxis-Guide zu df und du — freien Speicher pro Dateisystem prüfen, Verzeichnisgrößen ermitteln und volle Festplatten gezielt aufräumen.
df und du sind das Duo, mit dem du Plattenplatz im Griff behältst: df (disk free) zeigt dir die Belegung auf Dateisystem-Ebene – also pro gemounteter Partition –, während du (disk usage) die Größe einzelner Verzeichnisse und Dateien summiert. Wenn eine Disk vollläuft, ist das deine erste Anlaufstelle: df -h verrät, welches Dateisystem voll ist, du -sh * zeigt dir wo der Platz steckt. Dieser Guide führt dich von der schnellen Übersicht über das Aufspüren großer Dateien bis zu Aufräum- und Monitoring-Mustern.
df — Dateisystem-Überblick
df -h — Zeigt die Belegung aller gemounteten Dateisysteme in lesbarer Form (human-readable).
df -hdf -h <pfad> — Zeigt den Plattenplatz des Dateisystems, das den angegebenen Pfad enthält.
df -h /vardf -hT — Zeigt den Plattenplatz samt Dateisystem-Typ (ext4, xfs, tmpfs usw.).
df -hTdf -i — Zeigt die Inode-Belegung statt der Block-Belegung (diagnostiziert „kein Platz mehr" trotz freier Blöcke).
df -ihdf -h --total — Hängt eine Gesamtsummen-Zeile unten an.
df -h --totaldf -h -x tmpfs -x devtmpfs — Schließt virtuelle Dateisysteme aus (zeigt nur echte Platten).
df -h -x tmpfs -x devtmpfs -x squashfsdf -h --output=source,size,used,avail,pcent,target — Eigene Ausgabespalten festlegen.
df -h --output=source,size,avail,pcent,targetdf -h -t ext4 — Zeigt nur Dateisysteme eines bestimmten Typs.
df -h -t ext4du — Verzeichnisgrößen
du -sh <verzeichnis> — Zeigt die Gesamtgröße eines Verzeichnisses in lesbarer Form.
du -sh /var/logdu -sh * — Zeigt die Größe jedes Eintrags im aktuellen Verzeichnis.
du -sh * | sort -rhdu -sh */ | sort -rh — Zeigt nur die Größen der Unterverzeichnisse, größte zuerst.
du -sh */ | sort -rh | head -10du -h <verzeichnis> — Zeigt die Größen aller Unterverzeichnisse rekursiv.
du -h /var/logdu -h --max-depth=<n> <verzeichnis> — Begrenzt die Verzeichnistiefe auf n Ebenen.
du -h --max-depth=1 /vardu -ah <verzeichnis> — Zeigt die Größen aller Dateien und Verzeichnisse (nicht nur der Verzeichnisse).
du -ah /var/log | sort -rh | head -20du -sh <verzeichnis> --exclude='<muster>' — Schließt Dateien oder Verzeichnisse aus, die auf ein Muster passen.
du -sh /var --exclude='*.log'du -sc <verzeichnisse> | sort -rh — Zeigt die Summe je angegebenem Verzeichnis samt Gesamtsumme.
du -sc /var/log /var/lib /var/cache | sort -rhGroße Dateien & Verzeichnisse finden
du -ah <verzeichnis> | sort -rh | head -<n> — Findet die n größten Dateien und Verzeichnisse.
du -ah /var | sort -rh | head -20find <verzeichnis> -type f -size +<größe> -exec ls -lh {} \; — Findet Dateien, die größer als eine bestimmte Größe sind.
find / -type f -size +100M -exec ls -lh {} \; 2>/dev/nullfind <verzeichnis> -type f -size +<größe> | sort — Listet alle Dateien über einem Größen-Schwellwert.
find /var -type f -size +50M 2>/dev/null | sortfind <verzeichnis> -type f -name '*.log' -size +<größe> — Findet gezielt große Log-Dateien.
find /var/log -type f -name '*.log' -size +10Mfind <verzeichnis> -xdev -type f -size +<größe> | head -20 — Findet große Dateien, ohne Dateisystem-Grenzen zu überschreiten (-xdev).
find / -xdev -type f -size +500M 2>/dev/null | head -20Aufräum-Muster
du -sh /var/log/*.gz — Prüft die Größe alter, komprimierter Log-Dateien.
du -sh /var/log/*.gz /var/log/*.[0-9]find /var/log -name '*.gz' -mtime +<tage> -delete — Löscht komprimierte Logs, die älter als n Tage sind.
find /var/log -name '*.gz' -mtime +30 -deletejournalctl --disk-usage — Prüft, wie viel Platz die systemd-Journal-Logs belegen.
journalctl --disk-usagejournalctl --vacuum-size=<größe> — Reduziert die Journal-Logs auf eine maximale Größe.
sudo journalctl --vacuum-size=500Mjournalctl --vacuum-time=<zeit> — Entfernt Journal-Logs, die älter als eine Zeitspanne sind.
sudo journalctl --vacuum-time=7ddocker system df — Zeigt den Docker-Plattenverbrauch (Images, Container, Volumes, Build-Cache).
docker system df -vdocker system prune -a — Entfernt ungenutzte Docker-Daten (Images, Container, Netzwerke).
docker system prune -a --volumesMonitoring & Skripting
df -h / | awk 'NR==2 {print $5}' — Extrahiert den Belegungs-Prozentsatz des Root-Dateisystems.
df -h / | awk 'NR==2 {print "Root usage: " $5}'df -h | awk '$5+0 > 80' — Zeigt Dateisysteme, die zu mehr als 80 % gefüllt sind.
df -h | awk '+$5 > 80 {print $6 ": " $5 " full"}'watch -n 5 df -h — Überwacht die Plattenbelegung in Echtzeit, Aktualisierung alle 5 Sekunden.
watch -n 5 'df -h | grep -v tmpfs'ncdu <verzeichnis> — Interaktiver Plattenplatz-Analysator mit ncurses-Oberfläche (ncdu installieren).
ncdu /varlsblk -f — Listet Block-Geräte mit Dateisystem-Infos und Mountpoints.
lsblk -ffindmnt -D — Zeigt gemountete Dateisysteme samt Plattenbelegung (ähnlich wie df).
findmnt -D Fazit
df und du ergänzen sich: df liefert in Sekunden den Überblick auf Dateisystem-Ebene, du gräbt sich anschließend in die Verzeichnisse, um den Übeltäter zu finden – beide mit -h für lesbare Größen und du -sh * als Alltags-Klassiker. Beachte dabei zwei Stolperfallen: du kann auf großen Bäumen langsam sein und liest dabei viele Dateien, und es kommt zu scheinbaren Diskrepanzen, wenn df mehr Belegung meldet als du – meist liegt das an gelöschten, aber noch von einem Prozess offen gehaltenen Dateien (mit lsof aufspürbar) oder an Dateisystem-Reserven. Die reinen Leseoperationen sind ungefährlich; Vorsicht ist nur bei den Aufräum-Befehlen geboten: find … -delete und journalctl --vacuum-* löschen unwiderruflich – prüfe das Muster erst ohne -delete.
Weiterführende Links
- ubuntuusers-Wiki: df – deutschsprachige Erklärung zu Plattenplatz auf Dateisystem-Ebene
- ubuntuusers-Wiki: du – deutschsprachige Anleitung zum Ermitteln von Verzeichnisgrößen