CLI-Tools für die Arbeit mit Datenträgern

Aus LinuxUser 08/2020

CLI-Tools für die Arbeit mit Datenträgern

© Ozgur Guvenc, 123RF

Plattenblick

Linux bringt die passenden Tools mit, um Speichermedien zu erkennen, zu finden, einzurichten und deren Belegung zu erkennen.

Bei einer Standardinstallation einer gängigen Distribution sorgen die Installationsprogramme meist für die Auswahl der richtigen Platte, richten eine passable Plattengeometrie ein und halten sich auch sonst mit dem Thema Massenspeicher nicht groß auf.

Ruckzuck ist das System installiert, in den meisten Fällen brauchen Sie sich als Anwender nicht mit Festplattenpartitionen und deren Bezeichnungen auskennen. Möchten Sie jedoch später einmal einen weiteren Datenträger ins System einbinden, stehen die Assistenzprogramme aber nicht mehr bereit.

Am Anfang steht das Erkennen des Datenträgers, mit dem Sie arbeiten möchten. Um hier eindeutig das richtige Gerät zu finden, benutzen Sie das Kommando lsblk (siehe Kasten “Gerätenamen”).

Gerätenamen

Auch eine Festplatte oder ein USB-Stick wird als Gerätedatei angesprochen, nämlich in der Regel mit /dev/sdx, wobei x hier für einen Buchstaben von a bis z steht. Dieser Gerätename ist jedoch nicht in Beton gegossen, je nach Schnittstelle beginnen die Gerätenamen auch mit /dev/nvme.

Partitionen erhalten eine laufende Nummer. Die erste Partition der ersten Platte trägt also den Gerätenamen /dev/sda1. Beim häufig vorhandenen Gerät /dev/sr handelt es sich um das CD/DVD-ROM oder den DVD-Brenner.

Eine für die Praxis wichtige Option ist -p. Damit erhalten Sie die vollständigen Namen der Geräte, also mit absoluter Pfadangabe, in einer als Baum strukturierten Ansicht. Abbildung 1 zeigt Ihnen den Zustand vor und nach dem Verbinden eines weiteren Datenträgers mit dem Rechner.

Abbildung 1: Ausgabe von Lsblk vor und nach dem Verbinden eines Datenträgers.

Abbildung 1: Ausgabe von Lsblk vor und nach dem Verbinden eines Datenträgers.

Massenspeicher

Im Falle eines externen USB-Massenspeichergeräts funktioniert alles recht einfach. Stecken in Ihrem Rechner jedoch mehrere Datenträger, hilft Ihnen das Shell-Skript aus Listing 1. Damit verlieren Sie nicht die Übersicht, wenn Sie nach der Erstabfrage den Rechner herunterfahren und abschalten, um eine neue Festplatte einzubauen.

Listing 1

#! /bin/bash
# Erkennen des neuen Datenträgers
if [ -f dta1.txt ];
 then
   lsblk -p > dta2.txt
   # Anzeigen des Unterschiedes und des damit neuen
   # Datenträgers
   diff dta1.txt dta2.txt
   # Hilfsdateien löschen?
   read -p "Suchergebnisse löschen? (j) " we
   if [ "$we" = "j" ];
     then
       rm dta1.txt
       rm dta2.txt
   fi
   exit
fi
# Erkennen des Zustandes VOR dem Verbinden des neuen
# Datenträgers
lsblk -p > dta1.txt

Führen Sie das Skript einmal vor dem Herunterfahren und einmal nach dem Einbau der neuen Platte aus. Beim zweiten Durchlauf erhalten Sie den Unterschied der beiden Hilfsdateien angezeigt, nämlich den neuen Datenträger. Selbstverständlich funktioniert dies auch bei einem USB-Massenspeichergerät (Abbildung 2).

Abbildung 2: F&uuml;hren Sie das Skript aus <a href="#artRef-l1">Listing&nbsp;1</a> jeweils vor und nach dem Anh&auml;ngen eines Datentr&auml;gers aus.

Abbildung 2: Führen Sie das Skript aus Listing 1 jeweils vor und nach dem Anhängen eines Datenträgers aus.

Auch mit dem Aufruf blkid -o list finden Sie einen neuen, unbenutzten, unpartitionierten Datenträger (Abbildung 3). Für ihn existiert kein Einhängepunkt, und er hat auch noch kein Dateisystem.

Abbildung 3: Haben Sie eine neue Platte in den Rechner eingebaut, hilft Ihnen Blkid dabei, Informationen &uuml;ber die Hardware zu ermitteln.

Abbildung 3: Haben Sie eine neue Platte in den Rechner eingebaut, hilft Ihnen Blkid dabei, Informationen über die Hardware zu ermitteln.

Partitionieren

Das Anlegen von Partitionen geschieht entweder mittels Fdisk, Parted oder einem entsprechenden GUI-Programm (etwa mit Gparted). Für alle Aktionen, die über das Auslesen der Partitionsdaten hinausgehen, benötigen Sie in der Regel administrative Rechte. Sie rufen also, je nach Konfiguration, diese Befehle über Sudo auf oder nehmen die Identität von root an.

In jedem Fall legen Sie fest, welche Art von Partitionstabelle (Disklabel) zum Einsatz kommt. Hier wählen Sie bei Parted zwischen gpt und msdos, bei Fdisk zwischen dos, gpt oder bsd. Bei Fdisk legen Sie den Typ der Partition gemäß der Tabelle “Partitionstypen” fest. Sie zeigt Ihnen einige häufig verwendete.

Typ

Bezeichner fdisk

Bezeichner parted

Linux

83

ext2

Linux Swap

82

linux-swap

FAT32

6

fat32

NTFS, exFAT

7

NTFS

EFI FAT 12/16

ef

n.V.

FreeBSD

a5

n.V.

Parted kennt mehrere Partitionstypen. Der Umfang gegenüber Fdisk unterscheidet sich aber deutlich. Nur Ext2, FAT16, FAT32, Linux-swap, NTFS, XFS sind möglich. Das Programm kennt einen Dialogmodus (Abbildung 4) und einen direkten Kommandomodus im klassischen Stil.

Abbildung 4 zeigt Ihnen das Vorgehen: Zunächst rufen Sie das Programm unter Angabe der Gerätedatei auf. Mit print gibt das Tool die Geometrie des Datenträgers aus. Anschließend setzen Sie mit mklabel ein Disklabel, und legen mittels mkpart Partitionstyp Dateisystem Von Bis die Partition selbst an. Abschließend beenden Sie mit der Eingabe von quit das Werkzeug. Das Entfernen einer Partition geschieht mit rm Partitionstyp.

Abbildung 4: Anlegen einer Partition mit Parted im Dialogmodus.

Abbildung 4: Anlegen einer Partition mit Parted im Dialogmodus.

Die weitere Möglichkeit besteht im Absetzen direkter Kommandos, zum Beispiel in einem Shell-Skript. Als Beispiel bereiten wir einen USB-Stick für den Datenaustausch mit Rechnern “aus einer anderen Welt” vor: Eine der Optionen von Parted lautet --script. Damit führt der Befehl die Aktion sofort und ohne Rückfragen aus (Listing 2).

Listing 2

### Anlegen des Disklabels:
$ parted /dev/sde --script -- mklabel msdos
### Anlegen der Partition:
$ parted /dev/sde --script -- mkpart primary fat32 0% 100%

Besonders für große Platten ist Parted von Vorteil. Allerdings setzt das voraus, dass die Firmware im Rechner mitspielt, wenn es um bootfähige Datenträger geht. Oftmals ist GPR/UEFI fehlerhaft und nur “pro Windows” implementiert. Hier ist es wichtig, dass Sie das Gerät in den BIOS-Modus bringen und gegebenenfalls Secure boot abschalten.

Fdisk und Mkfs

Dieses Programm ermöglicht ebenso mit wenigen Handgriffen das Anlegen einer Partitionstabelle (Typen MBR und BSD) sowie das Erstellen von Partitionen. Mit fdisk -l sehen Sie die Datenträgergeometrie. Auch fdisk kennt einen Dialogmodus. Die Tabelle “Fdisk im Dialog” zeigt Ihnen eine Auswahl.

Eingabe

Aktion

Allgemein

[M]

Menü anzeigen

[P]

Plattengeometrie anzeigen

[W]

Beenden, Änderungen schreiben

[Q]

Beenden, Abbruch

Disklabel festlegen (Partitionstabelle)

[O]

DOS

[G]

GPT

Allgemeine Funktionen

[N]

Neue Partition anlegen

[L]

Bekannte Partitionstypen auflisten

[T]

Partitionstyp ändern

[Umschalt]+[F]

Unbelegten Speicherplatz auflisten

[I]

Details einer Partition

[D]

Partition löschen

[V]

Partitionstabelle sofort schreiben

Im folgenden Beispiel statten Sie einen leeren USB-Stick mit einem neuen Disklabel und einer Partitionstabelle aus. Zunächst rufen Sie Fdisk zusammen mit der Gerätedatei fdisk /dev/sde auf und lassen sich zur Kontrolle mit [P]+ die Partitionstabelle ausgeben – diese ist im vorliegenden Fall leer. Anschließend setzen Sie mittels [O]+ das Disklabel für DOS und schreiben mit [W] die Änderung auf den Datenträger (Abbildung 5).

Abbildung 5: Beim &Auml;ndern des Disklabels mit Fdisk brauchen Sie nur wenige Handgriffe.

Abbildung 5: Beim Ändern des Disklabels mit Fdisk brauchen Sie nur wenige Handgriffe.

Danach rufen Sie erneut Fdisk zusammen mit Nennung der Gerätedatei auf. Mit [N]+ legen Sie nun eine neue Partition an. Dabei wählen wir das Anlegen einer primären Partition. Fdisk setzt dabei automatisch den Partitionstyp Linux. Für den Kontakt mit anderen Betriebssystemen und dem noch aufzubringenden Dateisystem wählen wir davon abweichend mit [F] den Typ 7, also “HPFS/NTFS/exFAT”.

Mit [W] schreiben Sie die Änderung auf den Datenträger und beenden das Programm (Abbildung 6). Im letzten Schritt sollten Sie den Erfolg kontrollieren. Das Kommando fdisk -l /dev/sdx gibt die nun vorbereiteten Partitionen aus (Abbildung 7).

Abbildung 6: Anlegen einer Partition mit Fdisk.

Abbildung 6: Anlegen einer Partition mit Fdisk.


Abbildung 7: Zur Kontrolle die Partitionen ausgeben.

Abbildung 7: Zur Kontrolle die Partitionen ausgeben.

Eine blanke Partition ist noch nicht für den Einsatz geeignet. Das Speichermedium benötigt noch ein Dateisystem: Mkfs ist hier das Mittel der Wahl. Zunächst kontrollieren Sie, ob es sich wirklich um den richtigen Datenträger handelt (fdisk -l Gerätename).

Mit dem Ergebnis arbeiten Sie dann in der Form mkfs -t Dateisystem Gerätename oder Sie benutzen einfach die Tabulatortaste, ein Komfortmerkmal der Shell. Dazu starten Sie mit der Eingabe mkfs und drücken danach doppelt auf die Tabulatortaste, die Shell bietet Ihnen dann automatisch alle bereitstehenden Dateisysteme an. Dabei handelt es sich zum einen um symbolische Links, zum anderen auch um eigene Programme. Nach der Vervollständigung, hier für das Dateisystem vfat, wird das Dateisystem angelegt (Abbildung 8).

Abbildung 8: Das Kommando <code>mkfs</code> erstellt auf einem Datentr&auml;ger ein Dateisystem.

Abbildung 8: Das Kommando mkfs erstellt auf einem Datenträger ein Dateisystem.

Komfortabel mit GUI

Komfortabler und vermeintlich in einem Arbeitsgang behandeln Sie Datenträger mit dem Programm Gparted, das Sie in der Regel in den Paketquellen der großen Distributionen finden. Nach dem Start wählen Sie rechts oben das gewünschte Gerät aus. Im Falle eines blanken Datenträgers zeigt das Programm zunächst keine Partitionen und Dateisysteme an (Abbildung 9).

Abbildung 9: Gparted erleichtert das Anlegen von Partitionen und Dateisystemen.

Abbildung 9: Gparted erleichtert das Anlegen von Partitionen und Dateisystemen.

Beim Bearbeiten eines schon benutzten Geräts sind hier Einträge zu sehen. In diesem Fall klicken Sie mit der rechten Maustaste auf die Partition und wählen, um das Bearbeiten zu ermöglichen, Aushängen. Anschließend ist es möglich, die Partition zu löschen, zu kopieren oder gegebenenfalls mit einem anderen Dateisystem zu formatieren.

Zum Start klicken Sie links oben auf das Symbol Neu. Im Folgefenster des Programms stellen Sie alles Wesentliche ein, um die neue Partition anzulegen: Größe, Typ (Primäre Partition) und Dateisystem sowie die Bezeichnung. Klicken Sie auf Hinzufügen, sobald Sie mit den Einstellungen zufrieden sind (Abbildung 10).

Abbildung 10: Per Schieberegler legen Sie die Gr&ouml;&szlig;e der neuen Partition fest.

Abbildung 10: Per Schieberegler legen Sie die Größe der neuen Partition fest.

In Abbildung 11 finden Sie nun die voraussichtliche Belegung in der Tabellenansicht des Datenträgers. Im unteren Teil des Fensters zeigt das Tool die noch auszuführenden Aufgaben an. In diesem Stadium könnten Sie noch abbrechen oder Änderungen vornehmen. Um die konfigurierten Arbeiten auszuführen, klicken Sie auf den grünen OK-Haken in der oberen Symbolleiste.

Abbildung 11: Gparted sammelt die &Auml;nderung und f&uuml;hrt sie dann in einem Rutsch aus.

Abbildung 11: Gparted sammelt die Änderung und führt sie dann in einem Rutsch aus.

Es erscheint noch eine letzte Abfrage, und dann werden Ihre Anweisungen umgesetzt. Nach erfolgreicher Aktion sehen Sie die Partition mit Dateisystem, Größe und Belegung aufgelistet. Wichtig ist auch die Anmerkung am unteren Bildrand, dass keine Operationen mehr ausstehen. Damit beenden Sie das Programm (Abbildung 12).

Abbildung 12: Nach dem Anlegen der Partition zeigt Gparted das Ergebnis in der Tabelle an.

Abbildung 12: Nach dem Anlegen der Partition zeigt Gparted das Ergebnis in der Tabelle an.

Die UUID

Auf die klassischen Gerätenamen (etwa /dev/sda) dürfen Sie sich dabei nicht verlassen, da sich diese beim Hinzufügen oder Entnehmen von Geräten dynamisch verändern. Um im System eine eindeutige Kennzeichnung von Speichergeräten zu gewährleisten, kommt der “Universally Unique Identifier” oder kurz die UUID zum Einsatz. In der RFC 4122 [1] finden Sie das Regelwerk, das Aufbau und Bildung des UUID genau beschreibt.

Massenspeicher bekommen in der Regel automatisch eine UUID. Wie die Kennung aussieht, hängt vom gewählten Dateisystem ab. Der in Abbildung 12 gezeigte Datenträger verfügt über eine FAT32-Partition, welche die UUID 74EB-52A7 trägt.

Nach dem Formatieren mit einem Ext4-Dateisystem ändert sich auch die UUID. Nunmehr lautet diese b1954918-9adc-42ed-8b17-729c20415abb. Mittels Gparted lässt sich – in Abhängigkeit des Dateisystems – bei Bedarf eine neue UUID setzen. Auslesen können Sie diese Information, indem Sie die Partition mit der rechten Maustaste anklicken und aus dem Menü die Option Information wählen (Abbildung 13).

Abbildung 13: Gparted gibt auch Auskunft &uuml;ber die Partitionen und zeigt etwa die UUID an.

Abbildung 13: Gparted gibt auch Auskunft über die Partitionen und zeigt etwa die UUID an.

Mit Shell-Mitteln erhalten Sie diese Auskunft ebenfalls: Der Aufruf blkid -o list gibt Ihnen alle Massenspeicher des Systems in einer Übersicht aus. In der Abbildung 14 wurde die Ausgabe per Grep auf den USB-Stick begrenzt. Aber auch andere Programme zeigen den UUID an. Mit lsblk -f erhalten Sie ebenso eine Auflistung der im System vorhandenen Speichergeräte mitsamt ihrer UUID.

Abbildung 14: Ausgabe des UUID einer mit VFAT formatierten Partition mittels Blkid.

Abbildung 14: Ausgabe des UUID einer mit VFAT formatierten Partition mittels Blkid.

Dauerhafte Integration

Die Datei /etc/fstab beschreibt in allen gängigen Distributionen, wie das System welche Partition und Netzwerkfreigaben in den Verzeichnisbaum einhängt. Alleine das Aufzählen der Möglichkeiten, die sich Ihnen hier bieten, würde einen eigenen Artikel beanspruchen. Wir konzentrieren uns daher auf das Wesentliche.

Der allgemeine Aufbau nutzt eine Tabelle. Die einzelnen Spalten beschreiben von links nach rechts die Gerätedatei (oder alternativ ein Label oder die UUID), den Mount-Punkt im Verzeichnisbaum, das Dateisystem (vfat, ext4 oder Netzwerkprotokolle wie cifs), Optionen (Standard sind rw, suid, dev, exec, auto, nouser, async) sowie am Ende mit “Dump” und “Pass” zwei Anweisungen die Backup-Programme (Standard 0 für niemals) beziehungsweise die Reihenfolge der Dateisystemprüfung (0: Nie, 1: Sofort beim Start (für /), 2: Alle anderen Partitionen) betreffen.

Um das für den im Beispiel genutzten USB-Stick zu demonstrieren, versehen wir die erste Partition mit einem Ext4-Dateisystem und der Bezeichnung “MOBIL” (Ausgabe siehe Abbildung 15). Die Bezeichnung tragen Sie im mit der rechten Maustaste aufgerufenen Kontextmenü zur Partition unter Dateisystem bezeichnen ein.

Abbildung 15: Die Ger&auml;teinformation von Gparted zum verwendeten USB-Stick.

Abbildung 15: Die Geräteinformation von Gparted zum verwendeten USB-Stick.

Listing 3 zeigt nun den Eintrag in der /etc/fstab. Einmal mit der UUID als Parameter für die Gerätedatei und einmal mit dem Label. Zum Bearbeiten rufen Sie die Datei mit administrativen Rechten in einem Editor auf, etwa via sudo nano /etc/fstab. Mit [Strg]+[O][Eingabe] sichern Sie Ihre Änderung, mit [Strg]+[X] beenden Sie das Programm und kehren auf die Kommandozeile zurück.

Listing 3

### Mouten mit der UUID:
UUID=80dc00f5-0429-4c81-b42f-43e452051d92  /dasi  ext4  noauto,user,rw  0 2
### Identifikation über das Label:
LABEL=MOBIL  /dasi  ext4  noauto,user,rw  0 2

Des Weiteren wurde der Einhängepunkt /dasi mittels mkdir erstellt. Das Einhängen des Datenträgers anhand der Nennung der UUID oder der Bezeichnung funktioniert nun. Damit auch gewöhnliche Benutzer auf dem Laufwerk schreiben dürfen, erstellen Sie als root im Einhängepunkt ein Verzeichnis und übereignen dieses mittels chown dem Benutzer (Listing 4).

Listing 4

$ sudo mkdir /dasi
$ sudo mount /dasi
$ sudo mkdir /dasi/artikel
$ sudo chown Benutzer:Benutzer /dasi/artikel

In der Abbildung 16 finden Sie die Abfrage von lsblk nach dem Einstecken des USB-Sticks. Anschließend hängt der Benutzer ihn nur anhand der Bezeichnung ein. Dabei werden die Einträge der Datei /etc/fstab gelesen und geprüft, ob der Benutzer das Einhängerecht hat.

Abbildung 16: Ein- und Aush&auml;ngen sowie erste Aktionen auf dem eingebundenen Datentr&auml;ger.

Abbildung 16: Ein- und Aushängen sowie erste Aktionen auf dem eingebundenen Datenträger.

Mit den Kommandos danach testen Sie, ob Sie als Benutzer Schreib- und Leserechte auf dem Datenträger besitzen. Letztendlich hängen Sie den Datenträger wieder aus dem System aus. Zum Schluss sehen Sie nochmals den Zustand vor und nach dem Abziehen des USB-Sticks.

Blockiert

Fehler beim Aushängen eines Datenträgers treten auf, falls Benutzer oder Anwendungen noch auf Inhalte des Dateisystems zugreifen. Mit dem Befehl lsof finden Sie heraus, wer und was darauf das Aushängen des Datenträgers blockiert (im Beispiel lsof /dasi). Erst wenn alle Zugriffe beendet sind, kann das Dateisystem ausgehängt werden.

Füllstand

Ein vollgelaufenes Dateisystem verhindert das Weiterarbeiten. Allerdings gibt es bei internen Massenspeichern oftmals, abhängig von der Systemkonfiguration, eine Reserve, die dem Benutzer root vorbehalten ist. So passiert es, dass für normale Benutzer bei 95 Prozent Belegung nicht mehr möglich ist, auf diesem Dateisystem zu speichern, root die verbliebenen 5 Prozent aber noch beschreiben darf.

Selbst bei den heutigen Größen der Massenspeicher ist es keinesfalls ausgeschlossen, dass ein Dateisystem mal überläuft. Programmierfehler, Zip-Bomben oder einfach Sammelwut sorgen schnell für schwindenden Speicher. Und wer auf einem RasPi – der ja nur über eine Micro-SD-Karte als Speichermedium verfügt – arbeitet, sollte öfter die Speicherbelegung kontrollieren.

Benutzer haben keinen direkten Zugriff auf die Swap-Partition, wohl aber auf Prozesse. Daten gelangen in der Regel erst auf dieses spezielle Dateisystem, wenn der Arbeitsspeicher (RAM) nicht mehr ausreicht. Planen Sie bei der Systeminstallation mindestens so viel Platz ein, wie der Arbeitsspeicher beträgt, besser das Doppelte. Eine ausreichend bemessene Swap-Partition verhindert, dass bei hohem RAM-Bedarf der Rechner nicht einfriert.

Unvermeidlich läuft ein System viel langsamer, wenn der Arbeitsspeicher nicht ausreicht. Es ist aber noch möglich, wichtige Prozesse zu beenden, sodass die Arbeitsfähigkeit erhalten bleibt. Programme wie Top, Htop und die GUI-Verwandten zeigen die Belegung an (Abbildung 18). In der Shell lesen Sie mittels Free die Belegung des Arbeitspeichers aus, womit auch die SWAP-Partition aufgeführt wird (Abbildung 17).

Abbildung 17: Die Auslastung der SWAP-Partition mit dem Kommandozeilentool <code>free</code> wird ermittelt.

Abbildung 17: Die Auslastung der SWAP-Partition mit dem Kommandozeilentool free wird ermittelt.


Abbildung 18: Auch Monitoring-Tools wie <code>htop</code> zeigen die Belegung des SWAP-Speichers an.

Abbildung 18: Auch Monitoring-Tools wie htop zeigen die Belegung des SWAP-Speichers an.

Speicherbelegung

Die Abfrage der Speicherbelegung dürfen einzelne Nutzer für sich oder systemweit vornehmen. Besonders, wenn Sie für Ihre Benutzer Speicherplatz-Quota (Beschränkung des persönlichen Speicherplatzes unter /home) verwenden, lohnt es sich, öfter einen Blick darauf zu werfen.

Mit der Mate-Systemüberwachung haben Sie auch die Festplattenbelegung insgesamt im Blick, viele Desktops verfügen über eine ähnliche Funktionen (Abbildung 19). Mehr Übersicht bietet das Werkzeug Baobab, das Sie über das gleichnamige Paket bei vielen Distributionen nachinstallieren. Es zeigt die Speicherbelegung innerhalb des Home-Verzeichnisses oder einer beliebigen Ordnerstruktur an (Abbildung 20).

Abbildung 19: Die System&uuml;berwachung des Mate-Desktops zeigt unter anderem die Plattenf&uuml;llst&auml;nde an.

Abbildung 19: Die Systemüberwachung des Mate-Desktops zeigt unter anderem die Plattenfüllstände an.


Abbildung 20: Analyse der Speicherplatzbelegung im eigenen Heimatverzeichnis mithilfe von Baobab.

Abbildung 20: Analyse der Speicherplatzbelegung im eigenen Heimatverzeichnis mithilfe von Baobab.

Für die Abfrage der Speicherplatzbelegung stehen Ihnen zudem einige Shell-Tools bereit. Jede Distribution kennt Df. Mit df -h erhalten Sie zudem intuitive Zahlenangaben. Das Programm zeigt alle Dateisysteme an, also auch virtuelle und entfernte. Die Begrenzung auf lokal vorhandene erfolgt mit der Option -l. Bestimmte Dateisysteme geben Sie mit -T Typ an.

Abbildung 21 zeigt Ihnen das Programm im Einsatz. Echte Plattengeräte führt es dabei mit dem absoluten Pfad auf. Mit Grep setzen Sie deshalb den Filter, um die virtuellen, aber auch entfernt eingehängten Dateisysteme nicht auszugeben.

Abbildung 21: Df erlaubt einen schnellen Blick auf die Plattenbelegung.

Abbildung 21: Df erlaubt einen schnellen Blick auf die Plattenbelegung.

Das Programm zeigt die Größe des Datenträgers sowie den freien und belegten Speicherplatz an. Weitere ähnliche, aber oftmals in der Optik verbesserte Programme sind Dfc oder Discus. Hier ist es sogar möglich, eine ASCII-Grafik zu erzeugen.

Besonders beim Ermitteln des belegten Speicherplatzes eines Verzeichnisses (zum Beispiel vor dem Kopieren auf einen externen Datenträger) kommt die Ausgabe von Du gelegen. Mit der Option -sh summiert das Programm die Dateigrößen im angegebenen Pfad auf und gibt den belegten Speicherplatz in ganzen Kilo-, Mega- oder Gigabyte an.

Abbildung 22 zeigt, wie Sie die gesamte Belegung des Home-Verzeichnisses in einem Betrag ausgeben. Abbildung 23 zeigt auf, wie Sie ein Verzeichnis abfragen, einmal detailliert und einmal mit der Ausgabe der Summe.

Abbildung 22: Ermittlung des belegten Speicherplatzes des eigenen Home-Verzeichnisses.

Abbildung 22: Ermittlung des belegten Speicherplatzes des eigenen Home-Verzeichnisses.


Abbildung 23: Die Option <code>-s</code> summiert die enthaltenen Daten und Verzeichnisse auf.

Abbildung 23: Die Option -s summiert die enthaltenen Daten und Verzeichnisse auf.

Die beiden Befehle Df und Du integrieren sich gut in Shell-Skripte. Oftmals passiert es, dass man auf einen USB-Stick Daten speichern will, aber der Platz nicht reicht. Das wäre oft nicht weiter schlimm, wenn es sich nur um eine einzige Datei handelt. Bei einer größeren Anzahl von Dateien aber befindet sich dann ein Teil am USB-Stick.

Um sicherzustellen, dass alle Daten vollständig kopiert wurden, müssten Sie die Daten von Hand wieder löschen und die Kopie neu starten. Mit dem Shell-Skript in Listing 5 sehen Sie diese Aufgabe gelöst. Auch andere Aktionen, zum Beispiel Kopieren oder Verschieben, wenn am Zieldatenträger der Platz ausreicht, können Sie hier einbauen. Den Ablauf des Skripts finden Sie in der Abbildung 24.

Listing 5

#! /bin/bash
quelle=$(ls -1 | smenu -t1)
duquelle=$(du -BK -s $quelle | \
tr [:alpha:] \- | tr -d [:space:] |  \
cut -d \- -f1 )
ziel=$(df -l --output=target | grep -v "/run" |\
 grep -v "/sys" | grep -v "/dev" |\
 grep -v "/boot" | sed -e '1d' | smenu -t1)
zielwert=$(df -k --output=avail $ziel | tail -1)
if [ $duquelle -gt $zielwert ];
then
echo "Platz am Zieldatenträger reicht nicht aus!"
else
echo "Platz am Zieldatenträger reicht aus!"
fi

Abbildung 24: Das Shell-Skript aus <a href="#artRef-l5">Listing&nbsp;5</a> pr&uuml;ft, ob auf dem Datentr&auml;ger ausreichend Platz bereitsteht.

Abbildung 24: Das Shell-Skript aus Listing 5 prüft, ob auf dem Datenträger ausreichend Platz bereitsteht.

Ein Shell-Skript kann auch den aktuellen Belegungszustand eines Dateisystems überwachen und gegebenenfalls vorbereitete Aktionen ausführen (Listing 6).

Listing 6

#! /bin/bash
while true;
do
fuell=$(df --output=pcent /dev/sdd1 | sed -e '1d' | cut -d% -f1)
# Auswertung
if [ $fuell -gt 80 ];
then
# AKTION!
echo "Speichergerät hat bedenklichen Füllstand!"
fi
sleep 30
done

Die Abbildung 25 zeigt die Ausgabe des Skripts, sobald der Datenträger zu mehr als 80 Prozent mit Daten befüllt wurde. Bei Bedarf lässt sich die reine Warnung auch mit Handlungen verknüpfen, etwa indem das Programm die ältesten Daten automatisch auf einem Netzwerkspeicher sichert und dann lokal löscht. 

Abbildung 25: Das Skript aus <a href="#artRef-l6">Listing&nbsp;6</a> meldet sich, sobald der Datentr&auml;ger zu mehr als 80&nbsp;Prozent mit Daten belegt wird.

Abbildung 25: Das Skript aus Listing 6 meldet sich, sobald der Datenträger zu mehr als 80 Prozent mit Daten belegt wird.

Der Autor

Harald Zisler beschäftigt sich seit den frühen 90er-Jahren mit FreeBSD und Linux. Zu Technik- und EDV-Themen verfasst er Zeitschriftenbeiträge und Bücher.

DIESEN ARTIKEL ALS PDF KAUFEN
EXPRESS-KAUF ALS PDF
LinuxUser 08/2020 KAUFEN
EINZELNE AUSGABE
ABONNEMENTS
TABLET & SMARTPHONE APPS
E-Mail Benachrichtigung
Benachrichtige mich zu:

Hinweis: Dieser Artikel ist älter als ein Jahr, enthaltene Informationen sind möglicherweise veraltet.

0 Kommentare
Älteste
Neuste Beste Bewertung
Inline Feedbacks
Alle Kommentare anzeigen
Nach oben