Festplatte voll: Mit diesen 3 Linux-Kommandos ...

Virtual Server Blog

Kommentare

kalkin zu Prozesse und Systemauslastung komfortabel mit htop kontrollieren
Di, 30.06.2009 19:29
Wenn wir schon beim htop sind, dann sollte auch iftop nicht unerwaehnt bleiben. Ein top fu er den Netzwerkverkehr.


Johny zu Apache Ausfall: Dieses Script informiert Sie und startet Ihren Webserver neu
Fr, 26.06.2009 10:08
Hello, Do you have an English version for this article ? ;-) Thanks


Olli B. zu „I love Fedora“: Testen Sie jetzt Fedora 11 und erhalten Sie ein T-Shirt
Do, 25.06.2009 19:08
Obwohl Fedora schon interessan t ist, für meinen Web-Server g ilt: "Debian inside". Die Pake tverwaltung ist einfach [...]


Kai zu „I love Fedora“: Testen Sie jetzt Fedora 11 und erhalten Sie ein T-Shirt
Do, 25.06.2009 19:03
Hallo Steven, sehr schöne Akti on. Da unser Unternehmen ohneh in Fedora nutzt, habe ich glei ch mein T-Shirt eingefor [...]


Oliver Kötter zu So greifen Sie komfortabel und sicher auf MySQL zu
Do, 25.06.2009 14:56
Hallo, in meiner Version vo n Putty (0.60) musste ich als Destination "127.0.0.1:3306" e ingeben, damit es funkti [...]


Festplatte voll: Mit diesen 3 Linux-Kommandos entlarven Sie die Speicherfresser

Samstag, 23. August 2008 von Steven Zinke

"Hilfe meine Festplatte ist voll? - Wie finde ich heraus, welche Dateien den ganzen Speicher auffressen?" Anfragen dieser Art trudeln fast täglich bei uns ein. Denn immer wieder laufen Server-Festplatten aufgrund von Logfiles, heruntergeladener Software oder stark anwachsenden Datenbanken voll. In der Not müssen Sie die Speicherfresser dann zielgerichtet finden und eliminieren, damit kein Server-Absturz droht. Die besten drei Werkzeuge der Linux-Shell haben wir für Sie zusammengestellt.

Tool 1: Prüfen Sie mit "df" den noch verfügbaren Speicher

Mit dem Kommando df prüfen Sie den noch zur Verfügung stehenden Speicher auf Ihrem Server. Die Standardausgabe ist leider etwas schwer zu lesen, da die Ausgabe in 1k Blöcken erfolgt. Verwenden Sie daher den Befehl wie folgt, um eine lesbare Ausgabe zu erhalten:

df -h -T

In der Ausgabe sehen Sie schließlich, wie viel Speicherplatz noch auf den jeweiligen Partitionen frei ist.

localhost:/# df -h -T                                     
Dateisystem   Typ    Größe Benut  Verf Ben% Eingehängt auf
tmpfs        tmpfs    3,0G     0  3,0G   0% /lib/init/rw
tmpfs        tmpfs    3,0G     0  3,0G   0% /dev/shm
vzfs          vzfs    1,5G   1,5G 0,0G 100% /

Tool 2: Lassen Sie sich den Speicherverbrauch pro Verzeichnis anzeigen

Nachdem Sie festgestellt haben, dass der Speicherplatz auf Ihrem Server stark ausgelastet ist, suchen Sie am besten die Ursachen. Dazu nutzen Sie das Kommando du. Das Tool ermittelt für Sie den Speicherplatzverbrauch einzelner Verzeichnisse, indem es den Speicherverbrauch der im Verzeichnis enthaltenen Dateien und Unterverzeichnisse summiert.

Mit folgendem Kommando ermitteln Sie den Speicherplatzverbrauch für alle Verzeichnisse.

du -hs /*

Der Parameter -h sorgt hierbei dafür, dass Sie Speicherplatzangaben in einer lesbaren Anzeige erfolgen. Ein Ergebnis sieht dann z.B. so aus:

localhost:/# du -hs /*
1,0K /opt
648M /root
900M /srv
1,0K /sys
600M /tmp
...

Wenn Sie nun ein großes Verzeichnis identifiziert haben, können Sie es nun genauer untersuchen. Mit folgendem Kommando listen Sie den Speicherverbauch für ein bestimmtes Verzeichnis und aller darin enthaltenen Dateien (Parameter -a) auf. Wir untersuchen hier z.B. das Verzeichnis /root.

du -ah
/root

Die Ausgabe dieses Kommandos sieht dann beispielsweise wie folgt aus:

localhost:/# du -ah /root
1,0K    /root/.profile
1,0K    /root/.bashrc
1,0K    /root/.bash_history
1,0K    /root/.lesshst
648M    /root/debian-40r4a-i386-CD-1.iso
648M    /root

In dem Beispiel sehen Sie nun, dass besonders eine große iso-Datei immerhin 648 MB verbraucht. So können Sie zielgerichtet die Speicherfresser eines Verzeichniss finden und eliminieren.

Übrigens: Einige Ausgaben mit du können sehr lang werden. Am besten nutzen Sie dann less, um den Bildschirminhalt komfortabel zu scrollen.

du -ah / |
less

Tool 3: Finden Sie gezielt große Einzeldateien

Häufig liegt die Vermutung nahe, dass einige wenige Dateien den Speicher verbrauchen. Beispielsweise hat ein Kunde kürzlich eine Server-Applikation eingesetzt und den Debugging-Modus aktiviert. Dadurch wurde eine 1,5 GB große LOG-Datei generiert, die nicht rotiert wurde. Solche einzelnen Speicherfresser finden Sie gezielt mit folgendem Kommando:

ls -lahS $(find / -type f -size +10000k)

Das Kommando setzt sich aus zwei einzelnen Kommandos zusammen: ls und find. Das Kommandos ls ist für eine formatierte Auflistung der gefundenen Dateien verantwortlich. Die Parameter haben folgende Bedeutung:

  • l: Es wird das langen Listenformat genutzt, sodass alle Details der gefundenen Dateien angezeigt werden.
  • a: Alle Dateien werden angezeigt, auch versteckte Dateien, die mit einen . beginnen.
  • h: Größenangaben erfolgen in einem lesbaren Format
  • S: Die Ergebnisliste wird nach der Dateigröße sortiert

An das ls-Kommando wird als Parameter das Ergebnis des find-Kommandos übergeben. Dafür ist das Konstrukt $(...) verantwortlich. Innerhalb der Klammerung wird das find-Kommando ausgeführt, um alle Dateien zu ermitteln, die größer als 10 MB sind. Die Parameter haben hierbei folgende Bedeutung:

  • /: Dieser Parameter nennt das Verzeichnis, das durchsucht werden soll. In unserem Beispiel wird die Wurzel samt aller Unterverzeichnisse durchsucht.
  • -type f: Hiermit bestimmen Sie, dass nur nach Dateien gesucht werden soll.
  • -size 10000k: Schließlich geben Sie mit diesem Parameter die Mindestgröße der zu suchenden Dateien in Kilobyte an.

Das Ergebnis des Kommandos sieht dann beispielsweise so aus:

localhost:/# ls -lahS
$(find / -type f -size +10000k)
-rw-r--r-- 1 root root 648M 2008-08-23 20:23 /root/debian-40r4a-i386-CD-1.iso
-rw-r--r-- 1 root root  19M 2008-08-23 09:12 /tmp/debug.log

Ausblick: Vermeiden Sie Speichermangel und lassen Sie sich automatisch warnen

Die Ihnen vorgestellten Tools helfen Ihnen, schnell und zielgerichtet Speicherfresser zu finden. Die beste Abwehr gegen solche Speicherplatzprobleme sind jedoch vorbeugende Maßnahmen. Sie sollten auf Ihrem Server die Speicherplatznutzung mit Quota einschränken. Am besten richten Sie auch ein Script ein, dass Sie automatisch bei Speichermangel warnt. Wie Sie ein solches Script erstellen, zeige ich Ihnen in einem meiner nächsten Beiträge.

Tags für diesen Artikel: , , , ,
< zurück | vor >

Kommentare
Ansicht der Kommentare: (Linear | Verschachtelt)

Noch keine Kommentare


Kommentar schreiben

Umschließende Sterne heben ein Wort hervor (*wort*), per _wort_ kann ein Wort unterstrichen werden.
Standard-Text Smilies wie :-) und ;-) werden zu Bildern konvertiert.
Die angegebene E-Mail-Adresse wird nicht dargestellt, sondern nur für eventuelle Benachrichtigungen verwendet.

Um maschinelle und automatische Übertragung von Spamkommentaren zu verhindern, bitte die Zeichenfolge im dargestellten Bild in der Eingabemaske eintragen. Nur wenn die Zeichenfolge richtig eingegeben wurde, kann der Kommentar angenommen werden. Bitte beachten Sie, dass Ihr Browser Cookies unterstützen muss um dieses Verfahren anzuwenden.
CAPTCHA

 
Kommentare werden erst nach redaktioneller Prüfung freigeschaltet!