Linux Festplatte voll? So findet ihr die größten Files und schafft wieder Platz

Von Roland Golla
0 Kommentar
Surreale Darstellung: Schmelzende Festplatte mit File-Icons auf dünnen Beinen

„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 f filtert nur Files (keine Verzeichnisse)
  • -size +100M zeigt nur Files größer als 100MB
  • 2>/dev/null unterdrückt Permission-Errors
  • sort -k5 -rh sortiert nach Größe (human-readable)
  • head -20 zeigt 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
  • d zum Löschen von Files/Verzeichnissen
  • g zeigt Fortschrittsbalken
  • q zum 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!

0 Kommentar

Tutorials und Top Posts

Gib uns Feedback

Diese Seite benutzt Cookies. Ein Akzeptieren hilft uns die Seite zu verbessern. Ok Mehr dazu