"Disk full" ist ein häufiges Server-Problem. Mit df und du finden Sie schnell heraus, wo der Speicherplatz geblieben ist.

df - Disk Free

df zeigt den freien Speicherplatz aller eingehängten Dateisysteme.

Grundlegende Nutzung

df

Ausgabe:

Filesystem     1K-blocks      Used Available Use% Mounted on
/dev/sda1      102400000  45000000  52150000  47% /
/dev/sdb1      512000000 200000000 286000000  42% /data

Lesbare Größen (-h)

df -h
Filesystem      Size  Used Avail Use% Mounted on
/dev/sda1       100G   43G   50G  47% /
/dev/sdb1       500G  191G  273G  42% /data

Dateisystem-Typ anzeigen (-T)

df -Th
Filesystem     Type      Size  Used Avail Use% Mounted on
/dev/sda1      ext4      100G   43G   50G  47% /
/dev/sdb1      xfs       500G  191G  273G  42% /data
tmpfs          tmpfs     3.9G     0  3.9G   0% /dev/shm

Nur bestimmte Dateisysteme

# Nur ext4
df -t ext4

# Ohne tmpfs
df -x tmpfs

Inodes prüfen

Auch wenn Speicher frei ist, können Inodes voll sein:

df -i
Filesystem      Inodes  IUsed   IFree IUse% Mounted on
/dev/sda1      6553600 123456 6430144    2% /

du - Disk Usage

du zeigt die Größe von Verzeichnissen und Dateien.

Verzeichnisgröße

du -sh /var/log
2.3G    /var/log

Alle Unterverzeichnisse

du -h /var/log

Nur erste Ebene

du -h --max-depth=1 /var
1.2G    /var/log
500M    /var/cache
200M    /var/lib
1.9G    /var

Sortiert nach Größe

du -h --max-depth=1 /var | sort -hr

Größte Verzeichnisse finden

du -h --max-depth=1 / 2>/dev/null | sort -hr | head -10

Einzelne Dateien auflisten

du -ah /var/log | sort -hr | head -20

Große Dateien finden

Mit find

# Dateien größer als 100 MB
find / -type f -size +100M -exec ls -lh {} \; 2>/dev/null

# Mit Sortierung
find / -type f -size +100M -printf '%s %p\n' 2>/dev/null | sort -rn | head -20

Mit ncdu (interaktiv)

apt install ncdu
ncdu /

ncdu ist ein interaktiver Disk-Usage-Analyzer. Navigation mit Pfeiltasten.

Typische Speicherfresser

Log-Dateien

du -sh /var/log/*

Lösung: Log-Rotation prüfen, alte Logs löschen

# Alte Logs komprimieren
gzip /var/log/*.log.1

# Sehr alte Logs löschen
rm /var/log/*.log.*.gz

Paket-Cache

# APT-Cache
du -sh /var/cache/apt/archives

# Aufräumen
apt clean

Journal-Logs

# Journal-Größe
journalctl --disk-usage

# Auf 500 MB begrenzen
journalctl --vacuum-size=500M

# Älter als 7 Tage löschen
journalctl --vacuum-time=7d

Docker

# Docker-Speicherverbrauch
docker system df

# Aufräumen
docker system prune -a

Alte Kernel

# Installierte Kernel
dpkg -l | grep linux-image

# Alte entfernen
apt autoremove

Automatisches Aufräumen

APT-Cache begrenzen

In /etc/apt/apt.conf.d/99clean:

APT::Periodic::AutocleanInterval "7";

Journald begrenzen

In /etc/systemd/journald.conf:

[Journal]
SystemMaxUse=500M
MaxFileSec=7day
systemctl restart systemd-journald

Log-Rotation konfigurieren

In /etc/logrotate.d/custom:

/var/log/myapp/*.log {
    daily
    rotate 7
    compress
    delaycompress
    missingok
    notifempty
}

Monitoring einrichten

Skript für Warnungen

#!/bin/bash
THRESHOLD=90
PARTITION="/"

USAGE=$(df $PARTITION | tail -1 | awk '{print $5}' | tr -d '%')

if [ $USAGE -gt $THRESHOLD ]; then
    echo "WARNUNG: $PARTITION ist zu $USAGE% belegt" | mail -s "Disk Alert" admin@example.com
fi

Als Cronjob:

crontab -e
0 * * * * /root/check-disk.sh

Schnelle Übersicht

Volle Partition?

df -h | grep -E '[89][0-9]%|100%'

Wo ist der Platz?

du -h --max-depth=1 / 2>/dev/null | sort -hr | head -10

Größte Dateien

find / -type f -size +100M 2>/dev/null | head -20

Befehls-Übersicht

| Aufgabe | Befehl | |---------|--------| | Freier Speicher | df -h | | Mit Dateisystem-Typ | df -Th | | Inodes | df -i | | Verzeichnisgröße | du -sh /pfad | | Unterverzeichnisse | du -h --max-depth=1 /pfad | | Sortiert | du -h --max-depth=1 /pfad \| sort -hr | | Große Dateien | find / -size +100M | | Interaktiv | ncdu / |

Best Practices

1. Monitoring: Automatische Warnungen bei >80% 2. Regelmäßig prüfen: Wöchentlicher Check 3. Log-Rotation: Für alle Anwendungen konfigurieren 4. Separierte Partitionen: /var/log, /tmp, /home separat 5. Docker aufräumen: Regelmäßig docker system prune

Fazit

df und du sind die grundlegenden Werkzeuge zur Speicheranalyse. Kombiniert mit find und ncdu finden Sie schnell die Ursache voller Festplatten. Automatisiertes Monitoring verhindert, dass ein volles Dateisystem Ihre Dienste zum Absturz bringt.