Exercício Prático LPIC 12

Publicado por Wagner Souza em 14/05/2015

[ Hits: 3.375 ]

Blog: https://medium.com/@souzaw

 


Exercício Prático LPIC 12



LPIC - 1:
  • Tópico 103: Comandos GNU e UNIX (Peso 26)
  • Tópico 105: Shell, Scripts e administração de dados (Peso 10)

Para gerenciar melhor a quantidade de arquivos e pastas dentro de um diretório, um administrador de sistema GNU/Linux precisa criar um script que receba como parâmetro, o caminho de um diretório e informe:
  • Total de arquivos;
  • Arquivos ocultos;
  • Pastas;
  • E mostrar o espaço em disco usado pelo diretório passado.

Também é preciso fazer um teste para ver se o usuário passou ou não algum parâmetro. Caso não tenha passado, o script deve ser encerrado. Criar uma mensagem de saudação que, dependendo do horário, dê as saudações bom dia, boa tarde ou boa noite ao usuário que está executando o script.

Solução

Ufa! Parece que vai ser preciso desenvolver um grande script! Nem tanto. Segue abaixo o script comentado:

#!/bin/bash

# Script que recebe como parâmetro o diretório e informa a quantidade
# de sub-diretórios, arquivos ocultos ou não ocultos, porcentagem usada
# do disco rígido pelo diretório e informa uma saudação para quem está
# executando o script

#------------- / SEÇÃO 1 - Variáveis / -------------

# Esta primeira variável, com o auxílio do comando
# grep, vai mostrar todos os arquivos de um dire-
# tório exceto os sub-diretórios. No linux, a saída
# do comando ls -l vai listar todas as informações
# contidas em um diretório. O sinal de ( - ) refere-se
# a arquivos e a letra d refere-se a diretórios. O grep
# retorna tudo o que não for diretório

LIST_ARQ=$(ls -l $1 | grep -v ^d | wc -l)

# Listando arquivos ocultos em um diretório

LIST_ARQ_OCULTOS=$(find $1 -maxdepth 1 -type f -name '.*' | wc -l)

# Aqui eu só vou listar os diretórios excluindo do
# filtro os arquivos

LIST_DIR=$(ls -l $1 | grep -v ^- | wc -l)

# Informa o espaço em disco usado pelo diretório.
# O comando sed vai eliminar a primeira linha que
# não vai nos interessar

USO_DISCO=$(df -h $1 | cut -c34-38 | sed '1d')

# Esta variável será usada na instrução Case para
# dar a saudação ao usuário que está executando o
# script

HORA=$(date +%H)

#----------------- / FIM SEÇÃO 1 / -----------------

#------- / SEÇÃO 2 - Informações de Exibição / ------

# A instrução a seguir faz um teste para saber se foi
# passado algum parâmetro ao script. Caso não, o mesmo
# será encerrado

if  [ $# -ne 1 ]
then
	echo Você não passou nenhum parâmetro!
	exit 1
fi

# Informa uma saudação ao usuário que esta
# executando o script

echo "*************************"
case $HORA in
    0? | 1[01]) echo "Bom Dia $USER"
                ;;
    1[2-7]    ) echo "Boa Tarde $USER"
                ;;
    *         ) echo "Boa Noite $USER"
                ;;
esac
echo "*************************"

echo "Total de arquivos: $LIST_ARQ"
echo "Total de arquivos ocultos: $LIST_ARQ_OCULTOS"
echo "Total de diretórios: $LIST_DIR"
echo "Espaço em disco usado pelo diretório: $USO_DISCO"

#----------------- / FIM SEÇÃO 2 / -----------------

Espero que tenham entendido a resolução deste exercício.

Se possível, aprimorem este script e compartilhe também para a propagação do conhecimento.

Bons estudos.

Outras dicas deste autor

Instalação do PopcornTime Community

Trabalhando com referências de células no LibreOffice

Exercício Prático LPIC 05

Shell Script nosso de cada - Episódio 2

Exercício Prático LPIC 02

Leitura recomendada

Desabilitando o touchpad com script

Como checar/verificar md5sum

Ordenando uma lista de IPs (IPv4) com o sort

Criando uma imagem ISO no Ubuntu

Convertendo arquivo UTF-8 com BOM para UTF-8 sem BOM

  

Comentários

Nenhum comentário foi encontrado.



Contribuir com comentário




Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts