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:
- Aceitar um único argumento de linha de comando representando um sistema de arquivos (por exemplo, uma origem listada por
df --output=source). - Verificar se o sistema de arquivos fornecido está montado no sistema.
- 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).
- 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.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 do 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 <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=sourcepara 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.



