Wie behebt man den Fehler „Festplatte voll“ auf einem Linux-Server?
Eine Anleitung zum Auffinden großer Dateien, zum sicheren Bereinigen von Protokollen und zum Freigeben von Speicherplatz auf dem Server.
Eines der häufigsten Probleme auf Linux-Servern ist, dass die Festplatte völlig voll wird. Wenn die Festplatte voll ist, können Websites keine Dateien mehr schreiben, Datenbankdienste funktionieren möglicherweise nicht mehr, Spieleserver zeichnen möglicherweise keine Protokolle auf und einige Dienste starten möglicherweise überhaupt nicht.
Dieser Fehler wird normalerweise an den folgenden Symptomen erkannt:
- Fehler beim Hochladen der Dateien auf den Server
- Herunterfahren des Datenbankdienstes oder Fehler
- Auf dem Bedienfeld wird die Fehlermeldung „Kein Speicherplatz mehr auf dem Gerät“ angezeigt
- Der Spieleserver wird heruntergefahren, da er sich nicht anmelden kann.
- Auf Websites treten 500 Fehler oder leere Seiten auf
1. Überprüfen der Festplattennutzung
Überprüfen Sie zunächst, welche Festplattenpartition auf dem Server voll ist.
df -h
hier besonders Verwendung% Bereich berücksichtigt wird. Wenn ein Abschnitt 90 % oder mehr beträgt, bedeutet dies, dass das Risiko begonnen hat. Wenn es zu 100 % voll ist, können die Dienste keine Dateien schreiben.
2. Finden Sie die Ordner, die den meisten Platz beanspruchen
Wenn die Festplatte voll ist, liegt das Problem normalerweise darin, dass sich Protokolle, Backups oder Cache-Dateien in einem einzigen Ordner ansammeln. Überprüfen Sie große Ordner, beginnend mit dem Stammverzeichnis.
du -h --max-depth=1 / 2>/dev/null | sort -h
Dieser Befehl zeigt an, wie viel Speicherplatz Home-Verzeichnisse beanspruchen. Normalerweise werden folgende Verzeichnisse überprüft:
- /var/log - System- und Serviceprotokolle
- /home - Benutzer- und Websitedateien
- /backup - Alte Sicherungsdateien
- /tmp - Temporäre Dateien
- /var/lib/mysql - MySQL/MariaDB-Datenbankdateien
3. Listen Sie große Dateien auf
Manchmal kann eine einzelne Protokolldatei eine Größe von 10 GB oder mehr erreichen. Um große Dateien zu finden, können Sie diesen Befehl verwenden:
find / -type f -size +500M -exec ls -lh {} \; 2>/dev/nullDieser Befehl listet Dateien über 500 MB auf. Untersuchen Sie die resultierenden Dateien sorgfältig. Besonders .log, .alt, .gz, .bak und alte Sicherungsdateien sollten überprüft werden.
4. Sicheres Bereinigen von Protokolldateien
Das direkte Löschen der Protokolldatei eines laufenden Dienstes führt manchmal nicht zum erwarteten Ergebnis. Weil der Dienst die Datei weiterhin geöffnet halten kann. Daher besteht die sicherste Methode beim Bereinigen großer Protokolldateien darin, die Datei zu leeren.
truncate -s 0 /var/log/dosya_adi.log
Beispiel:
truncate -s 0 /var/log/syslog truncate -s 0 /var/log/messages truncate -s 0 /var/log/nginx/error.log
5. Paket-Cache-Reinigung
Auf Ubuntu- und Debian-basierten Systemen können Paket-Cache-Dateien mit der Zeit Speicherplatz belegen.
apt clean apt autoremove -y
Auf CentOS-, AlmaLinux- oder Rocky Linux-Systemen:
yum clean all dnf clean all
6. Überprüfen alter Backups
Die Dateien, die auf Hosting- und Spieleservern den meisten Platz beanspruchen, sind in der Regel alte Backups. Insbesondere wenn ein automatisches Backup-System vorhanden ist, können täglich neue Backups erstellt und alte Backups möglicherweise nicht gelöscht werden.
find /backup -type f -mtime +7 -name "*.tar.gz" -ls
Dieser Befehl listet Backups auf, die älter als 7 Tage sind. Zum Löschen, nachdem Sie Folgendes sichergestellt haben:
find /backup -type f -mtime +7 -name "*.tar.gz" -delete
7. Verhindern Sie ein erneutes Laden mit der Logrotate-Einstellung
Selbst wenn die Festplatte gereinigt wird und die Ursache nicht behoben wird, tritt das gleiche Problem nach einigen Tagen erneut auf. Hierzu muss die Logrotate-Konfiguration überprüft werden.
nano /etc/logrotate.conf
Beispiel für eine einfache Logrotate-Logik:
/var/log/*.log {
daily
rotate 7
compress
missingok
notifempty
}Diese Einstellung gibt Protokolldateien täglich zurück, bewahrt sie 7 Tage lang auf und komprimiert alte Protokolle.
Häufige Fehler
- Systemdateien löschen, ohne zu wissen, um welche Datei es sich handelt
- Löschen Sie die laufende Protokolldatei und starten Sie den Dienst nicht neu
- Bewahren Sie alte Backups für einen unbegrenzten Zeitraum auf
- Logrotate-Einstellungen werden überhaupt nicht überprüft
- Greifen Sie erst dann ein, wenn die Festplatte zu 100 % voll ist
FAQ
Warum gibt der Server eine Fehlermeldung aus, wenn die Festplatte voll ist?
Denn Dienste können keine Protokolle, Caches, temporäre Dateien oder Datenbanken schreiben. Dienste werden möglicherweise heruntergefahren, wenn der Schreibvorgang fehlschlägt.
Ist es besser, die Protokolldatei zu löschen oder zu leeren?
Anstatt die Protokolldatei bei laufenden Diensten vollständig zu löschen abschneiden Es ist sicherer, es mit zu entleeren.
Ich habe die Festplatte gereinigt, aber der Speicherplatz wurde nicht freigegeben. Warum?
Die gelöschte Datei kann von einem laufenden Dienst weiterhin geöffnet bleiben. Möglicherweise muss der entsprechende Dienst neu gestartet werden.
Leistungs- und Sicherheitsempfehlungen
- Überwachen Sie regelmäßig die Festplattennutzung.
- Speichern Sie Backups auf einer separaten Festplatte oder einem Remote-Backup-Bereich.
- Lassen Sie einen Dienst nicht längere Zeit laufen, ohne logrotate zu verwenden.
- Treffen Sie Vorsichtsmaßnahmen, wenn die Festplatte einen Füllstand von 85 % erreicht.
- Lassen Sie Debug-Protokolle auf Spieleservern nicht ständig geöffnet.
Dieser Artikel ist speziell für PvPServer vorbereitet.