Linux - Festplatte voll - Was tun?

Aus Laub-Home Wiki

Schnell müllt eine Festplatte zu, wie kann ich herausfinden wer der Übeltäter ist?
Was kann ich löschen, was nicht?

Wenn ihr eine vollgelaufene Festplatte habt und wissen wollt, wieso, dann lest hier einfach weiter.

Übeltäter finden

Als erstes sollte man Prüfen wie der Füllstand der einzelnen Platten bzw. Partitionen ist. Dies macht man am besten mit dem Tool df (diskfree)

df -h

folgende Ausgabe sollte selbsterklärend sein:

Filesystem            Size  Used Avail Use% Mounted on
/dev/sda1             7.9G  2.2G  5.3G  30% /
tmpfs                 1.9G     0  1.9G   0% /dev/shm
/dev/sdb1              99G  9.1G   85G  10% /srv
/dev/sda3              15G  564M   14G   4% /var

Hat man nun die Platte, bzw. den Mountpoint identifiziert, und den Alarm somit bestätigt, schaut man sich die einzelnen Ordner und ihre Größen an:

du -sch /srv/*
24K     /srv/config-backup
240K    /srv/f5asm
4.0K    /srv/home
112M    /srv/httpd
16K     /srv/lost+found
5.7G    /srv/mysql
1.9G    /srv/mysql-backup
4.0K    /srv/php-tmp
1.3G    /srv/syslog
8.9G    total

Hier sollte das Total ungefähr mit dem Füllstand von df -h übereinstimmen.
Nun kann man sich so einfach durch die Verzeichnisse wühlen:

 
du -sch /srv/syslog/*
du -sch /srv/syslog/server1/*

Will man zum Beispiel wissen wo große Dateien liegen, dann kann man dies mit dem folgenden find Befehl machen. Dieser findet alle Dateien größer 100MB im Verzeichnis /srv und Unterverzeichnissen:

find /srv -size +100M -exec ls -lh {} \;
-rw-r--r-- 1 root root 544M Nov  1 19:36 /srv/mysql-backup/mysqldump.2013-11-01_19:30.sql.gz
-rw-r--r-- 1 root root 537M Nov  3 19:36 /srv/mysql-backup/mysqldump.2013-11-03_19:30.sql.gz
-rw-r--r-- 1 root root 114M Jul  5 13:18 /srv/mysql-backup/2013-07-05_13:16:35_mysqldump-backup.sql.gz

Mit diesen Beiden Methoden sollte man dem Übeltäter auf die Schliche kommen.

Löschen & leeren

Es gibt natürlich ein paar kleine Tipps und Tricks mit den Häufigsten Sachen:

  • Install Cache leeren
RedHat bzw. Oracle Linux
yum clean all
Ubuntu bzw. Debian Linux
apt autoclean
  • Nicht benötigte Pakete löschen
apt autoremove
  • Logfiles löschen
Unter /var/log/ liegen einige hundert Logfiles, bei den meisten kann man die Älteren löschen um wieder ein wenig Platz zu schaffen
  • Cache überprüfen
du -sch /var/cache/*
  • Superuser Reservierung verkleinern oder entfernen (entfernen nur bei /srv)
verkleinern auf 3%
tune2fs -m3 /dev/sdb1
entfernen, nur /srv!:
tune2fs -m0 /dev/sdb1