Linux - Festplatte voll - Was tun?

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