Ist die Festplatte Ihres Linux-Servers voll, stehen Dienste plötzlich still: Datenbanken schreiben nicht mehr, Webseiten zeigen Fehler und Updates schlagen fehl. Typische Meldungen sind No space left on device oder Disk quota exceeded. Diese Anleitung zeigt, wie Sie schnell herausfinden, was den Speicher belegt, und wie Sie sicher Platz schaffen.

Schritt 1: Belegung prüfen

df -h

Die Ausgabe zeigt für jedes Dateisystem die Größe, den belegten und den freien Speicher. Wichtig ist meist die Zeile mit dem Einhängepunkt /. Steht dort Use% bei 100 %, ist die Platte voll.

Prüfen Sie zusätzlich die Inodes, also die Anzahl der Dateien:

df -i

Sind die Inodes erschöpft, ist zwar noch Platz frei, aber es können keine neuen Dateien angelegt werden. Ursache sind meist Millionen kleiner Dateien, etwa Session- oder Cache-Dateien.

Schritt 2: Große Verzeichnisse finden

Dieser Befehl zeigt die größten Verzeichnisse unterhalb von /, ohne in andere Dateisysteme zu wechseln:

sudo du -xh --max-depth=1 / 2>/dev/null | sort -h | tail -n 15

Gehen Sie anschließend in das größte Verzeichnis und wiederholen Sie den Befehl, zum Beispiel für /var:

sudo du -xh --max-depth=1 /var 2>/dev/null | sort -h | tail -n 15

Bequemer mit ncdu

Das Programm ncdu zeigt die Belegung interaktiv an. Sie navigieren mit den Pfeiltasten durch die Verzeichnisse:

sudo apt install -y ncdu
sudo ncdu -x /

Ist die Platte komplett voll, lässt sich ncdu eventuell nicht installieren. Nutzen Sie dann zuerst du und schaffen Sie etwas Platz.

Große Einzeldateien finden

sudo find / -xdev -type f -size +500M -exec ls -lh {} \; 2>/dev/null

Schritt 3: Typische Speicherfresser aufräumen

Systemprotokolle (Journal)

sudo journalctl --disk-usage
sudo journalctl --vacuum-size=200M

Damit das Journal dauerhaft begrenzt bleibt, setzen Sie in /etc/systemd/journald.conf den Wert SystemMaxUse=500M und starten den Dienst neu: sudo systemctl restart systemd-journald.

Paket-Cache

sudo apt clean
sudo apt autoremove --purge

Alte Logdateien

Große Logdateien unter /var/log sind häufig. Löschen Sie keine Datei, in die ein Dienst gerade schreibt, sondern leeren Sie sie:

sudo truncate -s 0 /var/log/beispiel.log

Ältere, bereits rotierte Logs wie *.gz oder *.1 können Sie gefahrlos löschen. Prüfen Sie, ob logrotate für die betroffene Anwendung eingerichtet ist.

Docker

docker system df
docker system prune
docker image prune -a

docker system prune entfernt gestoppte Container, ungenutzte Netzwerke und nicht mehr benötigte Image-Schichten. Mit docker image prune -a werden alle Images gelöscht, die kein Container verwendet. Volumes mit Ihren Daten bleiben bei beiden Befehlen erhalten, solange Sie nicht --volumes angeben.

Alte Backups und Dumps

Vergessene Datenbank-Dumps, Archive oder Backup-Ordner im Home-Verzeichnis oder unter /root sind häufige Ursachen. Verschieben Sie Backups auf einen externen Speicher.

Gelöschte Dateien, die noch Platz belegen

Haben Sie eine große Datei gelöscht, aber df zeigt keinen zusätzlichen freien Platz? Dann hält ein Prozess die Datei noch geöffnet. Finden Sie ihn mit:

sudo lsof -nP +L1 | head

Starten Sie den betreffenden Dienst neu, zum Beispiel mit sudo systemctl restart nginx. Danach wird der Platz freigegeben.

Vorbeugen

  • Begrenzen Sie die Größe von Docker-Logs, siehe Docker und Docker Compose unter Debian und Ubuntu installieren.
  • Lassen Sie sich warnen, bevor die Platte voll ist, etwa mit einem Monitoring-Tool wie Uptime Kuma oder unserem Alpenhost Monitoring.
  • Prüfen Sie regelmäßig mit df -h die Belegung.

Mehr Speicher benötigt?

Ist der Speicher dauerhaft knapp, können Sie Ihren vServer auf ein größeres Paket umstellen. Nach einem Upgrade muss die Partition im Gastsystem eventuell noch vergrößert werden. Unter Debian und Ubuntu mit einer einfachen Partition erledigen das:

sudo apt install -y cloud-guest-utils
lsblk
sudo growpart /dev/sda 1
sudo resize2fs /dev/sda1

Passen Sie Gerätenamen und Partitionsnummer an die Ausgabe von lsblk an. Bei XFS verwenden Sie sudo xfs_growfs / statt resize2fs. Erstellen Sie vorher einen Snapshot.

War diese Antwort hilfreich? 0 Benutzer fanden dies hilfreich (0 Stimmen)