Problem:
"Festplatte voll" ist ein Horror-Scenario jedes Server-Admins.
Häufig ist das Problem damit verbunden, daß auch keine Logfiles mehr geschrieben werden können und man daher gar nicht auf Anhieb auf den Systemfehler kommt.
Als Vorsorge sollte man sich regelmäßig Statusberichte zukommen lassen. Entweder in Form von einfach zu installierenden Überwachungs-Scripten (z.B. Logwatch) oder eigenen Scripten, wie z.B.:
discfree=`df` discused=`du / --max-depth=1` echo $discfree $discused | mail -s 'status' root
Ursache:
Als erstes muß man sich den "Verschwender" suchen. Hier hilft auch quota
nicht wirklich weiter, daher die manuelle Suche:
#Welche Partition ist betroffen?
df
#Welche Verzeichnisse sind womit gefüllt:
du / --max-depth=1
#Wir verfeinern das nun indem wir jeweils den Slash um das Verzeichnis
#erweitern, welches wir uns als nächstes ansehen wollen.
Normalerweise kommt man so nach 3-4 Schritten recht Dicht an den Übeltäter ran.
Übliche Ursachen:
- Ein Logfile in
/var/log/
wird nicht rotiert oder die Logfile-Rotation ist ganz ausgefallen. - Hacker haben per XSS (Cross-Site-Scripting) größere Dateien zum Download bereit gestellt.
Diese Übeltäter finden sich dann meist in einem Web-Verzeichnis. - Unter openSUSE findet sich auch schon mal der zen-updater (
zmd
) als Übeltäter.
Dann liegt im Verzeichnis/var/lib/zmd/
eine übergroße.db
-Datei. - Bei 1und1-Servern liegt das ganze
/var/
-Verzeichnis in einer eigenen, kleinen Partition. Darin liegen natürlich die Logfiles, aber eben auch die Mailboxen und die MySQL-Datenbanken. Hier stößt man schnell an Grenzen.
Lösung:
Je nach Ursache sieht die Lösung unterschiedlich aus:
- Logrotate korrekt einstellen.
- Files löschen und Lücke im Webspace suchen.
- Das Paket
zmd
entweder deinstallieren, oder das.db
-File löschen.
Vorher aberzmd
anhalten! - Siehe dazu: 1und1-Server: /var/ zu klein.