Verificar o Uso do Sistema de Arquivos Montado

ShellBeginner
Pratique Agora

Introdução

Neste desafio, você escreverá um script shell para verificar se um sistema de arquivos específico 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á montado no momento. Se estiver, o script informará 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 o Uso do Sistema de Arquivos Montado

Neste desafio, seu objetivo é criar um script que relate 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, uma origem listada por df --output=source).
  2. Verificar se o sistema de arquivos fornecido está montado no sistema.
  3. Se o sistema de arquivos estiver montado, imprimir 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, imprimir uma mensagem de erro clara.

Requisitos

Você deve seguir os seguintes requisitos:

  • O script deve ser nomeado como 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 do 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 <mounted-filesystem>
Filesystem <mounted-filesystem> is 19% used with 85748032 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 montado que você escolher em seu ambiente.

Dicas

  • Você pode usar df --output=source para obter uma lista de todas as origens 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 como 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 shell scripting, processamento de texto e recuperação de informações do sistema.

✨ Verificar Solução e Praticar