Verificar Uso de Sistema de Arquivos Montado

ShellBeginner
Pratique Agora

Introdução

Neste desafio, você escreverá um script shell para verificar se um determinado sistema de arquivos está montado. Seu script receberá o nome de um sistema de arquivos (por exemplo, /dev/vda1) como argumento. Usando o comando df, ele determinará se o sistema de arquivos está atualmente montado. Se estiver, o script relatará sua porcentagem de uso e a quantidade de espaço livre disponível. Se não estiver montado, ele exibirá uma mensagem de erro apropriada.

Verificar Uso de Sistema de Arquivos Montado

Neste desafio, seu objetivo é criar um script que reporte o status de um determinado sistema de arquivos. O script aceitará um único argumento de linha de comando, que é o nome do sistema de arquivos a ser verificado.

Tarefas

Seu script deve realizar as seguintes ações:

  1. Aceitar um único argumento de linha de comando representando um sistema de arquivos (por exemplo, /dev/vdb).
  2. Verificar se o sistema de arquivos fornecido está atualmente montado no sistema.
  3. Se o sistema de arquivos estiver montado, imprima uma mensagem mostrando sua porcentagem de uso e o espaço livre disponível em kilobytes (KB).
  4. Se o sistema de arquivos não estiver montado, ou se um número incorreto de argumentos for fornecido, imprima uma mensagem de erro clara.

Requisitos

Você deve aderir aos seguintes requisitos:

  • O script deve se chamar mount.sh e estar localizado no diretório ~/project.
  • Você deve usar o comando df para coletar informações do sistema de arquivos.
  • Seu script deve utilizar arrays shell e um loop for para processar os dados do sistema de arquivos.
  • O script deve lidar com casos em que um número incorreto de argumentos é fornecido.

Exemplo

Aqui está um exemplo de como seu script deve funcionar quando executado com um sistema de arquivos válido e montado.

labex:project/ $ bash mount.sh /dev/vdb
Filesystem /dev/vdb is 1% used with 1006884 KB free.

E aqui está um exemplo para um sistema de arquivos que não está montado:

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

Nota: Os valores de porcentagem de uso e espaço livre no exemplo são apenas para ilustração. Sua saída refletirá o estado real do sistema de arquivos /dev/vdb em seu ambiente.

Dicas

  • Você pode usar df --output=source para obter uma lista de todas as fontes de sistemas de arquivos montados.
  • Para popular um array com a saída de um comando, você pode usar a sintaxe my_array=($(command)).
  • Lembre-se de verificar o número de argumentos passados para o script usando $#.

Resumo

Neste desafio, você criou com sucesso um script shell para monitorar o uso do sistema de arquivos. Você aprendeu a processar argumentos de linha de comando, usar o comando df com opções de saída específicas e popular arrays com a saída de comandos. Você também praticou a iteração através de arrays usando um loop for para encontrar e exibir informações sobre um sistema de arquivos específico. Este desafio fortaleceu suas habilidades em scripting shell, processamento de texto e recuperação de informações do sistema.

✨ Verificar Solução e Praticar