„Disk space critical: 98% full“ – eine Meldung, die euch mitten in der Nacht aus dem Bett holen kann. Eure CI/CD Pipeline steht, der Server antwortet nicht mehr, und ihr wisst nicht, wo die 500 GB geblieben sind. Nach über 15 Jahren Erfahrung in Softwarequalität, Open Source und Remote Consulting zeigen wir euch heute, wie ihr systematisch große Files findet und eure Linux-Systeme wieder flott bekommt.
Warum Disk Space Management kritisch für euer Team ist
Volle Festplatten sind mehr als nur ein technisches Problem:
- Build-Server können keine Artifacts mehr erstellen
- Docker Images lassen sich nicht mehr pullen
- Logs werden nicht mehr geschrieben (und ihr verliert Debug-Informationen)
- Backup-Jobs schlagen fehl
- Datenbank-Transaktionen können crashen
Das Team von Never Code Alone hat in unzähligen Remote-Consulting-Projekten erlebt, wie präventives Disk Space Management Produktions-Ausfälle verhindert. Der Unterschied zwischen Panik und kontrolliertem Handeln? Die richtigen Commands zur richtigen Zeit.
Die 10 häufigsten Fragen zum Linux Disk Space Management – direkt beantwortet
1. Wie finde ich schnell die größten Files auf meinem System?
Der schnellste Weg für einen ersten Überblick:
find ~ -type f -size +100M 2>/dev/null -exec ls -lh {} ; | sort -k5 -rh | head -20
Was passiert hier im Detail:
find ~durchsucht euer Home-Verzeichnis-type ffiltert nur Files (keine Verzeichnisse)-size +100Mzeigt nur Files größer als 100MB2>/dev/nullunterdrückt Permission-Errorssort -k5 -rhsortiert nach Größe (human-readable)head -20zeigt die Top 20
Pro-Tipp aus der Praxis: Startet immer mit +100M bei der ersten Analyse. Auf modernen Servern sind kleinere Files selten das Problem. Wenn nichts gefunden wird, arbeitet euch mit +50M oder +10M weiter vor.
2. Wie unterscheide ich zwischen großen Files und großen Verzeichnissen?
Für eine Verzeichnis-Analyse nutzt du:
du -h --max-depth=1 /var | sort -rh | head -15
Das zeigt euch die Top 15 Verzeichnisse unter /var mit ihrer Gesamtgröße. Besonders relevant für:
/var/log– Log-Files ohne Rotation/var/lib/docker– Docker Images und Container/var/cache– Alte Package-Caches
Oder für einen schnelleren Überblick im aktuellen Verzeichnis:
du -sh */ | sort -rh
Consulting-Tipp: Bei Servern mit vielen Microservices ist /var/lib/docker häufig der größte Speicherfresser. Ein docker system prune -a kann hier Wunder wirken.
3. Was mache ich, wenn die Disk voll ist, aber ich nichts Großes finde?
Das klassische „Ghost Space“-Problem! Häufigste Ursache: Gelöschte Files, die von Prozessen noch geöffnet sind.
Diagnose mit lsof:
sudo lsof +L1 | grep deleted
Das zeigt euch alle gelöschten aber noch geöffneten Files. Typische Kandidaten:
- Tomcat oder Apache Logs
- MySQL Binary Logs
- Application Logs ohne Logrotate
Die Lösung:
# Process-ID aus lsof-Output ermitteln
sudo systemctl restart tomcat # oder den entsprechenden Service
Best Practice: Implementiert Logrotate für alle Services! Ein simples /etc/logrotate.d/myapp verhindert dieses Problem komplett.
4. Wie nutze ich ncdu für interaktive Disk-Analyse?
Ncdu ist euer visueller Freund für Disk-Analysen:
sudo apt install ncdu # Ubuntu/Debian
brew install ncdu # macOS
Dann einfach:
ncdu /
Navigation:
- Pfeiltasten zum Durchnavigieren
dzum Löschen von Files/Verzeichnissengzeigt Fortschrittsbalkenqzum Beenden
Pro-Tipp aus 15 Jahren Consulting: Ncdu ist perfekt für Remote-Sessions mit Entscheidern. Die visuelle Darstellung macht sofort klar, wo das Problem liegt – keine langen Command-Outputs zum Interpretieren.
5. Wie handle ich Permission-Probleme beim Suchen?
Zwei Ansätze für Permission-Issues:
Approach 1: Errors ignorieren
find / -type f -size +500M 2>/dev/null
Approach 2: Mit sudo arbeiten
sudo find / -type f -size +500M -exec ls -lh {} ;
Aber Vorsicht bei sudo auf /proc und /sys – diese Virtual Filesystems können zu False Positives führen.
Sicherer Ansatz mit Excludes:
sudo find / -type f -size +500M
-not -path "/proc/*"
-not -path "/sys/*"
-not -path "/dev/*"
2>/dev/null
Security-Reminder: In Production-Umgebungen solltet ihr sudo-Zugriff dokumentieren und mit Audit-Logs tracken!
6. Wie finde ich Files zwischen bestimmten Größen?
Für gezieltes Suchen zwischen 100MB und 500MB:
find /home -type f -size +100M -size -500M -ls
Oder mit du für Verzeichnisse:
du -h /var/log | awk '$1 ~ /^[0-9]+M$/ && $1 > 100'
Praktisches Beispiel für alte Backup-Files:
find /backup -type f -name "*.tar.gz"
-size +1G
-mtime +30
-ls
Das findet alle Backups größer als 1GB, die älter als 30 Tage sind – perfekt für Cleanup-Scripts!
7. Welche alternativen Tools gibt es für Disk-Analyse?
Das Linux-Ökosystem bietet viele Tools für verschiedene Use Cases:
gdu – Schneller als ncdu:
# Installation
curl -L https://github.com/dundee/gdu/releases/latest/download/gdu_linux_amd64.tgz | tar xz
sudo mv gdu /usr/local/bin/
# Nutzung
gdu /var
dua – Mit Interactive Cleanup:
# Installation über cargo
cargo install dua-cli
# Nutzung mit Interactive Mode
dua i /home
iotop – Für Live I/O-Monitoring:
sudo iotop -o
Tool-Empfehlung aus der Praxis: Ncdu für Server ohne GUI, gdu für lokale Entwicklung, iotop für Performance-Debugging.
8. Wie automatisiere ich Disk Space Monitoring?
Proaktiv statt reaktiv – automatisiert eure Checks!
Einfacher Cron-Job für Daily Reports:
#!/bin/bash
# /etc/cron.daily/disk-space-check
THRESHOLD=80
CURRENT=$(df -h / | tail -1 | awk '{print $5}' | sed 's/%//')
if [ "$CURRENT" -gt "$THRESHOLD" ]; then
echo "ALERT: Disk usage at ${CURRENT}%" | mail -s "Disk Alert" ops@example.com
# Top 10 größte Files loggen
find / -type f -size +100M 2>/dev/null
-exec ls -lh {} ; | sort -k5 -rh | head -10
> /var/log/large-files-$(date +%Y%m%d).log
fi
Integration mit Prometheus:
# Node Exporter liefert Disk Metrics
# Alertmanager Rule:
- alert: DiskSpaceWarning
expr: node_filesystem_avail_bytes / node_filesystem_size_bytes < 0.2
for: 10m
DevOps-Perspektive: Monitoring ist günstiger als Downtime! Investiert in Alerting bevor die Disk voll ist.
9. Wie gehe ich mit Docker und großen Image-Files um?
Docker ist oft der größte Speicherfresser auf Development- und CI/CD-Servern:
Schnelle Analyse:
docker system df
Cleanup-Strategien:
# Dangling Images löschen
docker image prune
# Alles Ungenutzte entfernen (aggressiv!)
docker system prune -a --volumes
# Gezielt alte Images > 30 Tage
docker images --format "{{.ID}}t{{.CreatedAt}}" |
awk '$2 < "'$(date -d '30 days ago' '+%Y-%m-%d')'" {print $1}' |
xargs -r docker rmi
Best Practice: Registry Cleanup
# In docker-compose.yml oder CI/CD Pipeline
services:
app:
image: registry.example.com/app:${CI_COMMIT_SHA}
# Kombiniert mit Registry Garbage Collection
docker exec registry bin/registry garbage-collect /etc/docker/registry/config.yml
Container-Expertise: In Kubernetes-Clustern solltet ihr zusätzlich ImagePullPolicies und PodGC konfigurieren!
10. Wie handle ich gemountete Filesysteme und Network Shares?
Gemountete Filesysteme können eure Disk-Analyse verfälschen:
Mounts identifizieren:
mount | grep -E "type (nfs|cifs|fuse)"
Analyze ohne Mounts:
# -x excludiert andere Filesysteme
du -hx --max-depth=1 / | sort -rh
# Oder mit find
find / -xdev -type f -size +100M
Problem: Overlay-Mounts
Wenn ein Verzeichnis gemountet wird, wird der darunterliegende Inhalt „versteckt“:
# Temporary Unmount für Analyse
sudo umount /data
du -sh /data
sudo mount /data
Infrastructure-Tipp: Bei NFS-Mounts solltet ihr Quotas auf dem NFS-Server setzen, nicht auf dem Client!
Best Practices aus über 15 Jahren Consulting-Erfahrung
Nach unzähligen Projekten haben wir bei Never Code Alone folgende Standards etabliert:
✅ Preventive Monitoring: Alerting bei 80% Disk Usage, nicht erst bei 95%
✅ Logrotate für alles: Jeder Service braucht Logrotation-Config
✅ Docker Cleanup: Wöchentlicher Cron-Job für docker system prune
✅ Backup-Retention: Automatisches Löschen alter Backups nach definierten Policies
✅ Development Hygiene: Regelmäßiges Cleanup von node_modules, vendor, .cache
✅ Documentation: Team-Wiki mit häufigen Disk-Killern eures Stacks
Der entscheidende Vorteil für eure Projekte
Effektives Disk Space Management ist kein Fire-Fighting, sondern präventive Systemhygiene. Teams mit guten Monitoring- und Cleanup-Praktiken:
- Erleben 90% weniger Produktions-Incidents durch volle Disks
- Sparen Zeit bei Build- und Deployment-Prozessen
- Reduzieren Cloud-Kosten durch effizientere Speichernutzung
- Verbessern System-Performance durch weniger I/O-Bottlenecks
Direkte Unterstützung für euer Team
Ihr kämpft regelmäßig mit Disk-Space-Problemen? Oder wollt ihr proaktive Monitoring-Strategien implementieren? Mit über 15 Jahren Expertise in Softwarequalität und Remote Consulting helfen wir euch gerne weiter.
Kontakt: roland@nevercodealone.de
Gemeinsam etablieren wir nachhaltige Prozesse für eure Infrastructure – keine Quick Fixes, sondern langfristige Lösungen die funktionieren.
Fazit: Von Reaktiv zu Proaktiv
Der Unterschied zwischen guten und exzellenten DevOps-Teams liegt im präventiven Handeln. Disk Space Management sollte Teil eurer regulären Maintenance sein, nicht euer nächtlicher Notfall.
Startet heute: Setzt einen Alert bei 80% Disk Usage, implementiert Logrotate für eure wichtigsten Services, und dokumentiert die Command-Snippets die ihr braucht. Zehn Minuten Investment heute sparen euch Stunden Debugging morgen.
Never Code Alone – Gemeinsam für bessere Software-Qualität!
