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
Autor
REXE Teknoloji Network & Security Team
Redaktion
REXE Teknoloji Technical Editorial
Erstveröffentlichung
Letzte Aktualisierung

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.

Häufig gestellte Fragen

Festplatte ist 100% voll und ich kann mich nicht per SSH verbinden?

Greifen Sie über VNC-Konsole im REXE-Kundenpanel auf den Server zu. Geben Sie Speicherplatz frei mit 'sudo journalctl --vacuum-size=50M' und 'sudo apt clean'.

Wie finde ich, welches Verzeichnis am meisten Platz belegt?

Verwenden Sie sudo du -sh /* | sort -rh | head -10 um die größten Verzeichnisse zu sehen. Normalerweise sind /var/log, /var/cache und /tmp die größten Verbraucher.

Ich habe Dateien gelöscht, aber der Speicherplatz wurde nicht freigegeben?

Ein Prozess verwendet möglicherweise noch die gelöschte Datei. Finden Sie diese mit lsof +L1 | grep deleted und starten Sie den zugehörigen Dienst neu.

df zeigt freien Speicherplatz, aber ich kann keine Dateien erstellen?

Inodes könnten erschöpft sein. Prüfen Sie die Inode-Nutzung mit df -i. Viele kleine Dateien können Inode-Erschöpfung verursachen.

Wie kann ich verhindern, dass die Festplatte voll wird?

Konfigurieren Sie Log-Rotation mit logrotate. Setzen Sie Journal-Größenlimits. Führen Sie regelmäßige Bereinigung mit Cron-Jobs durch. Richten Sie ein Überwachungsskript ein.

Verwandte Artikel

NetzwerkverkehrEingehend GbpsAusgehend Gbps