Verificar el uso del sistema de archivos montado

ShellBeginner
Practicar Ahora

Introducción

En este desafío, escribirás un script de shell para verificar si un sistema de archivos específico está montado. Tu script recibirá el nombre de un sistema de archivos (por ejemplo, /dev/vda1) como argumento. Utilizando el comando df, determinará si el sistema de archivos está montado actualmente. Si lo está, el script informará su porcentaje de uso y la cantidad de espacio libre disponible. Si no está montado, mostrará un mensaje de error apropiado.

Verificar el uso del sistema de archivos montado

En este desafío, tu objetivo es crear un script que informe el estado de un sistema de archivos determinado. El script aceptará un único argumento de línea de comandos, que será el nombre del sistema de archivos a verificar.

Tareas

Tu script debe realizar las siguientes acciones:

  1. Aceptar un único argumento de línea de comandos que represente un sistema de archivos (por ejemplo, una fuente listada por df --output=source).
  2. Verificar si el sistema de archivos proporcionado está montado actualmente en el sistema.
  3. Si el sistema de archivos está montado, imprimir un mensaje que muestre su porcentaje de uso y el espacio libre disponible en kilobytes (KB).
  4. Si el sistema de archivos no está montado, o si se proporciona un número incorrecto de argumentos, imprimir un mensaje de error claro.

Requisitos

Debes cumplir con los siguientes requisitos:

  • El script debe llamarse mount.sh y estar ubicado en el directorio ~/project.
  • Debes utilizar el comando df para recopilar información del sistema de archivos.
  • Tu script debe utilizar arreglos (arrays) de shell y un bucle for para procesar los datos del sistema de archivos.
  • El script debe manejar los casos en los que se proporcione un número incorrecto de argumentos.

Ejemplo

Aquí tienes un ejemplo de cómo debería funcionar tu script cuando se ejecuta con un sistema de archivos válido y montado.

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

Y aquí tienes un ejemplo para un sistema de archivos que no está montado:

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

Nota: Los valores de porcentaje de uso y espacio libre en el ejemplo son solo ilustrativos. Tu salida reflejará el estado real del sistema de archivos montado que elijas en tu entorno.

Pistas

  • Puedes usar df --output=source para obtener una lista de todas las fuentes de sistemas de archivos montados.
  • Para llenar un arreglo con la salida de un comando, puedes usar la sintaxis my_array=($(command)).
  • Recuerda verificar el número de argumentos pasados al script usando $#.

Resumen

En este desafío, has creado con éxito un script de shell para monitorear el uso del sistema de archivos. Aprendiste a procesar argumentos de línea de comandos, a utilizar el comando df con opciones de salida específicas y a llenar arreglos con la salida de comandos. También practicaste la iteración a través de arreglos usando un bucle for para encontrar y mostrar información sobre un sistema de archivos específico. Este desafío ha fortalecido tus habilidades en scripting de shell, procesamiento de texto y recuperación de información del sistema.

✨ Revisar Solución y Practicar