Einführung
In dieser Aufgabe schreiben Sie ein Shell-Skript, um zu prüfen, ob ein bestimmtes Dateisystem eingehängt ist. Ihr Skript nimmt den Namen eines Dateisystems (z. B. /dev/vda1) als Argument entgegen. Mithilfe des Befehls df ermittelt es, ob das Dateisystem aktuell eingebunden ist. Falls ja, gibt das Skript die prozentuale Auslastung sowie den verfügbaren freien Speicherplatz aus. Ist es nicht eingehängt, wird eine entsprechende Fehlermeldung angezeigt.
Überprüfung der Auslastung eingehängter Dateisysteme
Ihr Ziel ist es, ein Skript zu erstellen, das den Status eines angegebenen Dateisystems meldet. Das Skript akzeptiert ein einzelnes Befehlszeilenargument: den Namen des zu prüfenden Dateisystems.
Aufgaben
Ihr Skript muss die folgenden Aktionen ausführen:
- Ein einzelnes Befehlszeilenargument entgegennehmen, das ein Dateisystem repräsentiert (z. B. eine Quelle, die von
df --output=sourceaufgelistet wird). - Prüfen, ob das angegebene Dateisystem aktuell im System eingehängt ist.
- Wenn das Dateisystem eingehängt ist, eine Meldung ausgeben, die die prozentuale Auslastung und den verfügbaren freien Speicherplatz in Kilobyte (KB) anzeigt.
- Wenn das Dateisystem nicht eingehängt ist oder eine falsche Anzahl an Argumenten übergeben wurde, eine klare Fehlermeldung ausgeben.
Anforderungen
Sie müssen die folgenden Anforderungen erfüllen:
- Das Skript muss
mount.shheißen und sich im Verzeichnis~/projectbefinden. - Sie müssen den Befehl
dfverwenden, um Informationen über das Dateisystem zu sammeln. - Ihr Skript sollte Shell-Arrays und eine
for-Schleife verwenden, um die Dateisystemdaten zu verarbeiten. - Das Skript sollte Fälle behandeln, in denen eine falsche Anzahl von Argumenten übergeben wird.
Beispiel
Hier ist ein Beispiel dafür, wie Ihr Skript funktionieren sollte, wenn es mit einem gültigen, eingehängten Dateisystem ausgeführt wird:
labex:project/ $ bash mount.sh <mounted-filesystem>
Filesystem <mounted-filesystem> is 19% used with 85748032 KB free.
Und hier ist ein Beispiel für ein Dateisystem, das nicht eingehängt ist:
labex:project/ $ bash mount.sh /nonexistent
Error: Filesystem /nonexistent is not mounted.
Hinweis: Die Werte für die prozentuale Auslastung und den freien Speicherplatz im Beispiel dienen nur zur Veranschaulichung. Ihre Ausgabe spiegelt den tatsächlichen Zustand des von Ihnen gewählten Dateisystems in Ihrer Umgebung wider.
Tipps
- Sie können
df --output=sourceverwenden, um eine Liste aller eingehängten Dateisystemquellen zu erhalten. - Um ein Array mit der Ausgabe eines Befehls zu füllen, können Sie die Syntax
my_array=($(command))verwenden. - Denken Sie daran, die Anzahl der an das Skript übergebenen Argumente mit
$#zu prüfen.
Zusammenfassung
In dieser Aufgabe haben Sie erfolgreich ein Shell-Skript zur Überwachung der Dateisystemauslastung erstellt. Sie haben gelernt, wie man Befehlszeilenargumente verarbeitet, den Befehl df mit spezifischen Ausgabeoptionen nutzt und Arrays mit Befehlsausgaben füllt. Zudem haben Sie geübt, wie man mit einer for-Schleife durch Arrays iteriert, um Informationen über ein bestimmtes Dateisystem zu finden und anzuzeigen. Diese Aufgabe hat Ihre Fähigkeiten im Bereich Shell-Scripting, Textverarbeitung und Abruf von Systeminformationen gestärkt.



