Vérification de l'utilisation d'un système de fichiers monté

ShellBeginner
Pratiquer maintenant

Introduction

Dans ce défi, vous allez écrire un script shell pour vérifier si un système de fichiers spécifique est monté. Votre script prendra le nom d'un système de fichiers (par exemple, /dev/vda1) comme argument. En utilisant la commande df, il déterminera si le système de fichiers est actuellement monté. Si c'est le cas, le script rapportera son pourcentage d'utilisation et la quantité d'espace libre disponible. S'il n'est pas monté, il affichera un message d'erreur approprié.

Vérification de l'utilisation d'un système de fichiers monté

Dans ce défi, votre objectif est de créer un script qui rapporte l'état d'un système de fichiers donné. Le script acceptera un seul argument en ligne de commande, correspondant au nom du système de fichiers à vérifier.

Tâches

Votre script doit effectuer les actions suivantes :

  1. Accepter un seul argument en ligne de commande représentant un système de fichiers (par exemple, une source listée par df --output=source).
  2. Vérifier si le système de fichiers fourni est actuellement monté sur le système.
  3. Si le système de fichiers est monté, afficher un message indiquant son pourcentage d'utilisation et l'espace libre disponible en kilo-octets (KB).
  4. Si le système de fichiers n'est pas monté, ou si un nombre incorrect d'arguments est fourni, afficher un message d'erreur clair.

Exigences

Vous devez respecter les exigences suivantes :

  • Le script doit être nommé mount.sh et situé dans le répertoire ~/project.
  • Vous devez utiliser la commande df pour collecter les informations sur le système de fichiers.
  • Votre script doit utiliser des tableaux shell et une boucle for pour traiter les données du système de fichiers.
  • Le script doit gérer les cas où un nombre incorrect d'arguments est fourni.

Exemple

Voici un exemple du fonctionnement attendu de votre script lorsqu'il est exécuté avec un système de fichiers valide et monté.

labex:project/ $ bash mount.sh <mounted-filesystem>
Filesystem <mounted-filesystem> is 19% used with 85748032 KB free.

Et voici un exemple pour un système de fichiers qui n'est pas monté :

labex:project/ $ bash mount.sh /nonexistent
Error: Filesystem /nonexistent is not mounted.

Remarque : Le pourcentage d'utilisation et les valeurs d'espace libre dans l'exemple sont fournis à titre indicatif uniquement. Votre sortie reflétera l'état réel du système de fichiers monté que vous choisirez dans votre environnement.

Conseils

  • Vous pouvez utiliser df --output=source pour obtenir la liste de toutes les sources de systèmes de fichiers montés.
  • Pour remplir un tableau avec la sortie d'une commande, vous pouvez utiliser la syntaxe my_array=($(command)).
  • N'oubliez pas de vérifier le nombre d'arguments passés au script en utilisant $#.

Résumé

Dans ce défi, vous avez créé avec succès un script shell pour surveiller l'utilisation du système de fichiers. Vous avez appris à traiter les arguments de ligne de commande, à utiliser la commande df avec des options de sortie spécifiques et à remplir des tableaux avec le résultat de commandes. Vous vous êtes également exercé à parcourir des tableaux à l'aide d'une boucle for pour trouver et afficher des informations sur un système de fichiers spécifique. Ce défi a renforcé vos compétences en script shell, en traitement de texte et en récupération d'informations système.

✨ Vérifier la solution et pratiquer