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:
- Aceitar um único argumento de linha de comando representando um sistema de arquivos (por exemplo,
/dev/vdb). - Verificar se o sistema de arquivos fornecido está atualmente montado no sistema.
- 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).
- 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.she estar localizado no diretório~/project. - Você deve usar o comando
dfpara coletar informações do sistema de arquivos. - Seu script deve utilizar arrays shell e um loop
forpara 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=sourcepara 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.



