"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
dfAusgabe:
Filesystem 1K-blocks Used Available Use% Mounted on
/dev/sda1 102400000 45000000 52150000 47% /
/dev/sdb1 512000000 200000000 286000000 42% /dataLesbare Größen (-h)
df -hFilesystem Size Used Avail Use% Mounted on
/dev/sda1 100G 43G 50G 47% /
/dev/sdb1 500G 191G 273G 42% /dataDateisystem-Typ anzeigen (-T)
df -ThFilesystem 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/shmNur bestimmte Dateisysteme
# Nur ext4
df -t ext4
# Ohne tmpfs
df -x tmpfsInodes prüfen
Auch wenn Speicher frei ist, können Inodes voll sein:
df -iFilesystem 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/log2.3G /var/logAlle Unterverzeichnisse
du -h /var/logNur erste Ebene
du -h --max-depth=1 /var1.2G /var/log
500M /var/cache
200M /var/lib
1.9G /varSortiert nach Größe
du -h --max-depth=1 /var | sort -hrGrößte Verzeichnisse finden
du -h --max-depth=1 / 2>/dev/null | sort -hr | head -10Einzelne Dateien auflisten
du -ah /var/log | sort -hr | head -20Groß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 -20Mit 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.*.gzPaket-Cache
# APT-Cache
du -sh /var/cache/apt/archives
# Aufräumen
apt cleanJournal-Logs
# Journal-Größe
journalctl --disk-usage
# Auf 500 MB begrenzen
journalctl --vacuum-size=500M
# Älter als 7 Tage löschen
journalctl --vacuum-time=7dDocker
# Docker-Speicherverbrauch
docker system df
# Aufräumen
docker system prune -aAlte Kernel
# Installierte Kernel
dpkg -l | grep linux-image
# Alte entfernen
apt autoremoveAutomatisches 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=7daysystemctl restart systemd-journaldLog-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
fiAls Cronjob:
crontab -e0 * * * * /root/check-disk.shSchnelle Ü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 -10Größte Dateien
find / -type f -size +100M 2>/dev/null | head -20Befehls-Ü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.