Zum Hauptinhalt springen
Zurück zur Kategorie

Festplatte voll: Notfallwiederherstellung

Notfallmaßnahmen bei vollem Speicherplatz: Große Dateien mit du und ncdu finden, Log-Bereinigung, Inode-Prüfung und automatische Bereinigungskonfiguration.

Lesezeit: 13 Min. Fehlerbehebung
festplattevollduncduloginodebereinigungwiederherstellung

Inhaltsverzeichnis

Einführung

Wenn der Speicherplatz voll ist, kann dies zu Dienstabstürzen, Datenbankfehlern und Systeminstabilität führen. In dieser Anleitung behandeln wir Notfallmaßnahmen und dauerhafte Lösungen.

Notfallerkennung

Speicherplatznutzung prüfen

hljs bash
# Allgemeine Speicherplatznutzung
df -h

# Inode-Nutzung
df -i

# Mit Dateisystemtypen
df -Th

Wenn die Speicherplatznutzung 95% überschreitet, ist sofortiges Handeln erforderlich. Bei 100% beginnen Dienste abzustürzen.

Große Dateien und Verzeichnisse finden

Analyse mit du-Befehl

hljs bash
# Größte Verzeichnisse im Root
sudo du -sh /* 2>/dev/null | sort -rh | head -20

# /var-Verzeichnis-Analyse
sudo du -sh /var/* 2>/dev/null | sort -rh | head -10

# /var/log-Analyse
sudo du -sh /var/log/* 2>/dev/null | sort -rh | head -10

# Dateien größer als 100MB finden
sudo find / -type f -size +100M -exec ls -lh {} \; 2>/dev/null | sort -k5 -rh | head -20

Interaktive Analyse mit ncdu

hljs bash
# ncdu installieren
sudo apt install ncdu -y

# Root-Verzeichnis-Analyse
sudo ncdu /

Notfall-Bereinigungsschritte

1. Log-Dateien bereinigen

hljs bash
# Systemd-Journal-Größe prüfen
journalctl --disk-usage

# Journal auf 100MB begrenzen
sudo journalctl --vacuum-size=100M

# Logs älter als 7 Tage löschen
sudo journalctl --vacuum-time=7d

# Große Log-Dateien truncaten
sudo truncate -s 0 /var/log/syslog
sudo truncate -s 0 /var/log/kern.log

# Alte rotierte Logs löschen
sudo find /var/log -name '*.gz' -delete
sudo find /var/log -name '*.1' -delete

Der truncate-Befehl setzt die Dateigröße auf Null zurück, ohne sie zu löschen. Dienste müssen nicht neu gestartet werden.

2. APT-Cache bereinigen

hljs bash
# APT-Cache-Größe prüfen
sudo du -sh /var/cache/apt/archives/

# Heruntergeladene Paketdateien bereinigen
sudo apt clean

# Alte Paketversionen bereinigen
sudo apt autoclean

# Unbenutzte Abhängigkeiten entfernen
sudo apt autoremove -y

3. Alte Kernel bereinigen

hljs bash
# Aktuelle Kernel-Version
uname -r

# Installierte Kernel auflisten
dpkg --list | grep linux-image

# Alte Kernel entfernen
sudo apt autoremove --purge -y

4. Tmp-Verzeichnis bereinigen

hljs bash
# /tmp-Größe prüfen
sudo du -sh /tmp

# Tmp-Dateien älter als 7 Tage löschen
sudo find /tmp -type f -atime +7 -delete

5. Gelöschte aber offene Dateien finden

hljs bash
# Gelöschte aber offene Dateien finden
sudo lsof +L1 | grep deleted

# Zugehörigen Prozess neu starten
sudo systemctl restart DIENST_NAME

Besonders wenn Log-Dateien gelöscht werden, wird der Speicherplatz erst nach Neustart des zugehörigen Dienstes freigegeben.

Inode-Erschöpfung

hljs bash
# Inode-Nutzung prüfen
df -i

# Verzeichnisse mit den meisten Dateien finden
sudo find / -xdev -printf '%h\n' | sort | uniq -c | sort -rn | head -20

Automatische Log-Rotation

hljs bash
# /etc/logrotate.d/custom-logs
/var/log/myapp/*.log {
    daily
    missingok
    rotate 7
    compress
    delaycompress
    notifempty
}

Journal-Größenlimit

hljs bash
# /etc/systemd/journald.conf
[Journal]
SystemMaxUse=200M
SystemMaxFileSize=50M
MaxRetentionSec=7day

Speicherplatz-Überwachungsskript

hljs bash
#!/bin/bash
THRESHOLD=90
PARTITION="/"
USAGE=$(df -h $PARTITION | awk 'NR==2 {print $5}' | tr -d '%')
if [ "$USAGE" -gt "$THRESHOLD" ]; then
  echo "WARNUNG: Speicherplatznutzung $USAGE% ($PARTITION)"
  du -sh $PARTITION* 2>/dev/null | sort -rh | head -10
fi

Fazit

Voller Speicherplatz ist ein kritisches Problem, das sofortiges Handeln erfordert. Log-Dateien, APT-Cache und alte Kernel sind die häufigsten Speicherplatzverbraucher. Durch regelmäßige Log-Rotation und Speicherplatzüberwachung können Sie dieses Problem verhindern.