![]() |
|
||||||||||||||||||
|
|||||||||||||||||||
|
|||||||||||||||||||
|
||
|
TFT Monitor bei
Mercateo kaufen.
Neues Netbook? Ein Preisvergleich lohnt sich. Bei uns finden sie Notebooks, PDAs und Drucker mit Testberichten und Tipps. Diamant Buchhaltungssoftware – transparent und detailliert auch für die Konzernbuchhaltung. Günstige Shareware Programme als direkte Downloads im Software Portal. Bis zu 70% sparen durch Preisvergleich. |
||
|
Zu Befehl: df, duDas richtige Maßvon Heike Jurzik |
|
| Zu Befehl |
|
Auch wenn sich viele Dinge bequem über grafische Oberflächen wie KDE oder GNOME regeln lassen -- wer sein Linux-System richtig ausreizen möchte, kommt um die Kommandozeile nicht herum. Abgesehen davon gibt es auch sonst viele Situationen, in denen es gut ist, sich im Befehlszeilendschungel ein wenig auszukennen. |
Kein Grund zur Panik, aber dringender Handlungsbedarf besteht, wenn die Meldung "No space left on device" der einzige Hinweis darauf ist, dass es irgendwo im System Platzprobleme gibt. Linux bietet auf der Kommandozeile die beiden Programme df und du, die Ihnen zeigen, wo etwas "überläuft". Finden Sie mehr über belegte Blöcke, die prozentuale Belegung von Partitionen und die i-Node-Liste heraus und kombinieren Sie die Ausgabe geschickt mit anderen Befehlen, um die Übeltäter aufzuspüren.
Dateisysteme organisieren die Struktur von Dateien und Verzeichnissen auf physikalischen Geräten wie z. B. Festplatten oder CD-ROMs. Linux kann gleich mit mehreren Dateisystemen umgehen. Während vor einigen Jahren noch ext2 ("extended filesystem, version 2") als Standard galt, hat sich mittlerweile die nächste Generation mit ext3, ReiserFS, XFS oder JFS durchgesetzt.
Letztere sind Journaling-Dateisysteme: In einem Journal werden Änderungen am Dateisystem protokolliert. Dies passiert unmittelbar vor dem eigentlichen schreibenden Zugriff -- der entsprechende Eintrag wird wieder entfernt, wenn die Änderung erfolgt ist. Bei einem unvorhergesehenen Systemabsturz muss nicht mehr die gesamte Platte auf eventuelle Fehler untersucht werden, stattdessen wird nur noch anhand des Journals überprüft, ob die letzten Änderungen wirklich durchgeführt wurden, und notfalls der Zustand vor dem Schreiben der Datei(en) wiederhergestellt.
Darüber hinaus kann Linux auch mit vfat (Windows 95, 98, Me) und NTFS (Windows NT, 2000, XP) umgehen. Der Befehl mount verrät, welche Dateisysteme gerade "eingehängt" sind:
huhn@asteroid:~$ mount /dev/hda12 on / type ext3 (rw) proc on /proc type proc (rw) devpts on /dev/pts type devpts (rw,mode=0620,gid=5) /dev/hda7 on /boot type ext2 (rw) /dev/hda13 on /home type ext3 (rw) /dev/hdb1 on /mnt/c type vfat (rw,gid=102,umask=007) /dev/hdb5 on /mnt/d type vfat (rw,gid=102,umask=007) usbdevfs on /proc/bus/usb type usbdevfs (rw) /dev/hdd on /media/dvd type udf (ro,nosuid,nodev,unhide,user=huhn)
Alle Festplattenpartitionen und sonstige Datenträger (z. B. CD-ROM- oder DVD-Laufwerke) werden über Gerätedateien im Verzeichnis /dev angesprochen. Die Ausgabe des mount-Befehls zeigt nicht nur den Namen der Partition, sondern auch welches Dateisystem verwendet wird.
Um etwas über die Auslastung der Partitionen zu erfahren, verwenden Sie den Befehl df (Kasten 1). In der ersten Tabellenspalte sehen Sie jeweils den Namen der Partition, in der zweiten Spalte die Anzahl der 1-KB-Blöcke, die auf der Partition vorhanden sind. Danach folgen Hinweise, wieviele davon bereits belegt sind und wieviele noch zur Verfügung stehen. Die Angabe in Prozent dahinter gestaltet das ganze etwas übersichtlicher. Zuletzt verrät das Kommando den Mount-Point.
| Kasten 1: Ausgabe von df |
huhn@asteroid:~$ df Filesystem 1K-Blöcke Benutzt Verfügbar Ben% Eingehängt auf /dev/hda12 7882560 5214756 2267388 70% / /dev/hda7 101086 4445 91422 5% /boot /dev/hda13 82470800 41990020 36291432 54% /home /dev/hdb1 521808 508080 13728 98% /mnt/c /dev/hdb5 5756032 4933016 823016 86% /mnt/d /dev/hdd 7392734 7392734 0 100% /media/dvd |
Wer noch mehr wissen möchte, verwendet die Option -a (--all). Hier tauchen in der Ausgabe auch "Pseudo"-Dateisysteme wie die Prozessinformationen unter /proc auf. Die Option -T zeigt in einer zusätzlichen Spalte den Dateisystemtyp an, z. B. ext3 oder vfat.
Sind zusätzlich Dateisysteme aus dem Netz gemountet und sollen diese nicht in der Anzeige auftauchen, hilft der Parameter -l (--local). Weiter "beschränken" lässt sich die Ausgabe mit angehängter Option -h (--human-readable) -- df rundet jetzt auf die nächstliegende Einheit auf oder ab (Kasten 2, oben). Anstelle von 1-KB-Blöcken wird nun in GB oder MB gezählt. Dabei tauchen die Angaben allerdings schonmal in unterschiedlichen Maßeinheiten auf, so dass die Spalte MB und GB einfach mischt. Außerdem sind die Angaben durch das Runden etwas ungenauer. Entscheiden Sie einfach selbst, ob Sie die Infos in KB (default, oder df -k) oder MB (df -m) sehen.
Es kann passieren, dass Sie die Meldung "No space left on device" erhalten, obwohl noch lange keine hundertprozentige Auslastung des Dateisystems erreicht ist. In dem Fall lohnt sich ein Blick auf die i-Node-Liste mit angehängtem Parameter -i (oder --inode, Kasten 2, unten).
| Kasten 2: "df -h" und "df -i" |
huhn@asteroid:~$ df -h Filesystem Größe Benut Verf Ben% Eingehängt auf /dev/hda12 7,6G 5,0G 2,2G 70% / /dev/hda7 99M 4,4M 90M 5% /boot /dev/hda13 79G 41G 35G 54% /home /dev/hdb1 510M 497M 13M 98% /mnt/c /dev/hdb5 5.5G 4.8G 803M 86% /mnt/d /dev/hdd 7,1G 7,1G 0 100% /media/dvd huhn@asteroid:~$ df -i Filesystem INodes IBenut. IFrei IBen% Eingehängt auf /dev/hda12 1001920 267205 734715 27% / /dev/hda7 26104 36 26068 1% /boot /dev/hda13 10485760 49297 10436463 1% /home /dev/hdb1 0 0 0 - /mnt/c /dev/hdb5 0 0 0 - /mnt/d /dev/hdd 21 21 0 100% /media/dvd |
Dateien haben im Wesentlichen zwei Eigenschaften: Sie belegen Platz (physikalischen Speicher) und besitzen mindestens einen Namen. Verzeichnisse sind genau genommen auch Dateien, die Inhaltseinträge zu Dateien oder weiteren Verzeichnissen enthalten. Ein Eintrag einer Datei in einem Verzeichnis besteht aus einem Namen und einer so genannten "Knotennummer" -- dem i-node.
I-nodes sind Einträge im Inhaltsverzeichnis, in dem alle enthaltenen Dateien verzeichnet sind, und enthalten Informationen über Dateien. Mit Ausnahme des Dateinamens sind in diesen i-nodes in insgesamt 128 Bytes alle Verwaltungsinformationen der Dateien gespeichert. Dazu gehören beispielsweise Typ und Zugriffsrechte (ist es eine "normale" Datei, ein Verzeichnis, eine Gerätedatei, ein symbolischer Link? Wer darf schreiben, lesen oder ausführen?), die Größe in Byte, das Erstellungs- und Modifikationsdatum, das Datum des letzten Zugriffs und ein Zeiger auf den physikalischen Datenbereich.
Die Größe dieses Inhaltsverzeichnisses, der i-node-Liste, wird bereits beim Erstellen des Dateisystems festgelegt. Gibt es viele kleinere Dateien im System, wie z. B. bei News-Servern, kann dieses Verzeichnis "überlaufen", obwohl grundsätzlich noch Platz auf der Partition vorhanden ist. Administratoren, die vorher wissen, dass viele kleine Dateien oder symbolische Links angelegt werden sollen, wählen einfach eine größere i-node-Dichte.
Eine Alternative zum Tool df ist das "Disk Information Utility" di (http://www.gentoo.com/di/). Es bietet bei ähnlichen Optionen wie df ein etwas aufgeräumteres Ausgabeformat -- Sie finden das kleine Hilfsprogramm auf der Heft-CD; es lässt sich mit dem klassischen Dreischritt ./configure && make && make install übersetzen und bringt auch eine eigene Man-Page mit (man di).
Das Programm df verrät nicht, welche Dateien am meisten Platz belegen. Dies finden Sie mit dem Befehl du ("disk usage") heraus. Rufen Sie du in Ihrem Home-Verzeichnis auf, arbeitet sich das Kommando rekursiv durch alle Unterverzeichnisse, und die Daten fliegen nur so über den Bildschirm -- erst am Schluss erhalten Sie eine Zusammenfassung:
huhn@asteroid:~$ du [...] 1740 ./.phoenix/default 1752 ./.phoenix 4 ./.mgp_fonts 16994640 .
Interessiert Sie nur das Endergebnis, hängen Sie die Option -s (--summarize) an. Auch für du gibt es den Parameter -h (--human-readable):
huhn@asteroid:~$ du -h [...] 1.7M ./.phoenix/default 1.8M ./.phoenix 4.0k ./.mgp_fonts 17G .
Das Kommando kann auch gezielt auf bestimmte Dateiendungen oder einzelne Verzeichnisse losgelassen werden. Auch wenn der Aufruf du -s ~ eine Zusammenfassung für das Home-Verzeichnis ausgibt, wissen Sie immer noch nicht, wo genau der meiste Platz verbraucht wird. Eine Kombination aus mehreren Befehlen bringt Licht ins "Datendunkel":
huhn@asteroid:~$ du --max-depth=1 -m ~ | sort -rn | less 16597 /home/huhn 2748 /home/huhn/oggs 1530 /home/huhn/linuxuser 1483 /home/huhn/uni [...]
Hier wird zunächst durch die Option --max-depth=1 festgelegt, dass nur eine weitere Unterverzeichnisstufe berücksichtigt wird. Der Parameter -m (--megabytes) bewirkt eine Ausgabe in MB. Diese wird durch das Pipe-Zeichen (|)an den Befehl sort weitergeleitet. Dessen Parameter -n bewirkt, dass Zahlen numerisch sortiert werden -- normalerweise würde die Zahl 3 hinter 24 eingeordnet, da die ersten Zeichen (3 und 2) relevant sind. Durch die Option -r wird in umgekehrter Reihenfolge ("reverse") sortiert. So erscheint die größte Zahl an erster Stelle. Zum Schluss wird die Ausgabe dieser Befehlskombination an den Pager less weitergereicht, um das Ergebnis seitenweise betrachten zu können. (hge)
Dieser Online-Artikel kann Links enthalten, die auf nicht mehr vorhandene Seiten verweisen. Wir ändern solche "broken links" nur in wenigen Ausnahmefällen. Der Online-Artikel soll möglichst unverändert der gedruckten Fassung entsprechen.
Druckerfreundliche Version |
Feedback zu dieser Seite
|
Datenschutz |
© 2010 Linux New Media AG |
Last modified: 2008-04-22 13:59
[Linux-Magazin]
[LinuxUser]
[EasyLinux]
[Linux-Community]
[Ubuntu User]
[Linux Technical Review]
[Linux Magazine]
[Linux Pro Magazine]
[Ubuntu User]
[EasyLinux Poland]
[Linux Magazine Poland]
[Linux Magazine Brasil]
[EasyLinux Brasil]
[Linux Magazine Spain]