Kurze Antwort
Wenn der Datenträger voll ist, prüfen Sie zuerst die Belegung mit `df -h` und finden Sie große Dateien und Ordner mit `du`. Bereinigen Sie dann nicht benötigte Protokolle, Paketcaches und temporäre Dateien, achten Sie jedoch darauf, aktive Protokolle nicht ohne Rotation zu löschen. Richten Sie abschließend logrotate ein und entfernen Sie alte Archive, um ein erneutes Volllaufen zu verhindern.
So erkennen Sie das Problem
- Dienste können keine Daten in die Datenbank oder in Dateien schreiben
- Die Anwendung meldet den Fehler „No space left on device“
- Sie können sich nicht per SSH am Server anmelden
- Die Website gibt einen Fehler 500 zurück oder lädt nicht
- Systemprotokolle werden nicht mehr geschrieben
Häufigste Ursachen
Unkontrollierte Protokolle
Protokolldateien von Anwendungen oder des Systems wachsen ohne Rotation und können den gesamten freien Speicher belegen.
Paketcaches und Aktualisierungen
Heruntergeladene Pakete und Caches der Paketmanager (APT, DNF) sammeln sich mit der Zeit an.
Temporäre Dateien und Sitzungen
Dateien in `/tmp` und Benutzersitzungen können dauerhaft bestehen bleiben, wenn sie nicht bereinigt werden.
Große Datenbankdateien
Sicherungsdateien, Datenbank-Dumps oder Archive können groß und in Vergessenheit geraten sein.
Falsch eingebundene Datenträger
Wenn eine Partition nicht korrekt eingebunden wird, werden Daten auf die Root-Partition geschrieben und füllen diese.
Lösung Schritt für Schritt
- 1
Prüfen Sie die Datenträgerbelegung
Führen Sie
df -haus, um zu sehen, welche Partition voll ist. Achten Sie auf die SpalteUse%und auf die Partition, die zu 100 % belegt ist. Wenn die Root-Partition (/) voll ist, fahren Sie mit der Prüfung großer Ordner fort. - 2
Finden Sie die größten Ordner
Verwenden Sie als root
du -h --max-depth=1 /, um die Belegung nach Verzeichnissen zu sehen. Wechseln Sie dann in den größten Ordner und wiederholen Sie den Befehl. So lokalisieren Sie schnell die Stelle, an der Speicher verbraucht wird. - 3
Finden Sie große Dateien
Führen Sie als root
find / -type f -size +100M -exec ls -lh {} \;aus, um Dateien größer als 100 MB zu finden. Löschen oder verschieben Sie nicht benötigte Dateien, prüfen Sie jedoch zuerst ihren Zweck und erstellen Sie eine Sicherung, wenn die Daten wichtig sind. - 4
Bereinigen Sie Protokolle
Protokolle befinden sich normalerweise in
/var/log. Erstellen Sie vor der Bereinigung eine Sicherung der Protokolle, wenn Sie diese für die Diagnose benötigen. Sie können alte archivierte Protokolle (*.gz,*.1) löschen oder sie als root mit dem Befehltruncate -s 0 /var/log/name.logkürzen. Löschen Sie keine aktiven Protokolle, sondern kürzen oder rotieren Sie sie. - 5
Leeren Sie den Paketcache
Führen Sie auf Debian/Ubuntu-Systemen als root oder mit
sudoaus:apt cleanundapt autoremove. Verwenden Sie auf RHEL/CentOS/Fedora-Systemen als root oder mitsudo:dnf clean allunddnf autoremove. Dadurch geben Sie den Speicher frei, den heruntergeladene Pakete belegen. - 6
Bereinigen Sie temporäre Dateien
Überprüfen Sie
/tmpund/var/tmpund löschen Sie Dateien, die älter als einige Tage sind. Seien Sie vorsichtig mit Dateien, die derzeit von aktiven Prozessen verwendet werden. - 7
Richten Sie logrotate ein
Prüfen Sie die Konfiguration in
/etc/logrotate.confund/etc/logrotate.d/. Stellen Sie sicher, dass Protokolle rotiert und ältere Versionen gelöscht werden. Sie könnenrotate 7unddailyfür wichtige Protokolle hinzufügen. - 8
Prüfen Sie die Einbindung der Datenträger
Führen Sie
mountunddf -haus, um zu sehen, ob alle Partitionen korrekt eingebunden sind. Wenn eine Partition nicht eingebunden ist, werden Daten auf die Root-Partition geschrieben und können diese füllen.
Wenn nichts hilft
Wenn Sie weiterhin nicht genügend Speicher haben, prüfen Sie, ob gelöschte Dateien von aktiven Prozessen gehalten werden. Der als root ausgeführte Befehl lsof +L1 zeigt solche Dateien an; starten Sie den Prozess, der sie hält, sicher neu. Erwägen Sie, einen neuen Datenträger hinzuzufügen oder die Partition zu erweitern. Erstellen Sie für Datenbanken und Anwendungen mit großen Datenmengen regelmäßig Sicherungen und bereinigen Sie alte Dumps. Wenn der Datenträger physisch klein ist, planen Sie abschließend die Migration auf einen größeren Datenträger oder Cloud-Speicher.
So beugen Sie vor
- Prüfen Sie regelmäßig die Datenträgerbelegung mit `df -h` und `du`
- Richten Sie logrotate für alle Anwendungen ein, die Protokolle schreiben
- Bereinigen Sie monatlich den Paketcache und temporäre Dateien
- Verwenden Sie Monitoring-Tools, die Sie warnen, wenn der Datenträger 80 % erreicht
Wann Sie einen Profi rufen sollten
Wenn Sie nicht auf den Server zugreifen können oder nicht wissen, welche Dateien sicher gelöscht werden können, wenden Sie sich an den IT-Support. Wenn der Datenträger physisch defekt ist oder der Verdacht auf einen Hardwarefehler besteht, sollte dies ebenfalls von einem Fachmann geprüft werden.
IT-Infrastruktur-Wartung · Server, Netzwerke, Backup, Sicherheit und HelpdeskHäufige Fragen
Wie gebe ich schnell Speicher auf der Root-Partition frei?
Prüfen Sie zuerst mit `df -h`, wie viel Speicher übrig ist. Finden Sie dann große Dateien und Ordner mit `du` und `find` und löschen Sie nicht benötigte Protokolle und Caches. Wenn es dringend ist, können Sie vorübergehend alte Protokollarchive löschen, erstellen Sie jedoch vorher eine Sicherung, wenn Sie diese benötigen.
Kann ich Dateien in /tmp bedenkenlos löschen?
Sie können Dateien löschen, die älter als einige Tage sind, prüfen Sie jedoch zuerst, ob sie von einem aktiven Prozess verwendet werden. Am besten verwenden Sie `tmpwatch` oder `systemd-tmpfiles` mit einem entsprechenden Timer, der `/tmp` automatisch bereinigt.
Warum füllt sich der Datenträger nach der Bereinigung erneut?
Die häufigste Ursache ist das Fehlen einer Protokollrotation oder eine Anwendung, die große temporäre Dateien erstellt. Prüfen Sie die logrotate-Konfiguration und legen Sie Beschränkungen für Anwendungen fest, die viele Daten schreiben.