Exercício Prático LPIC 12

Publicado por Wagner Souza em 14/05/2015

[ Hits: 3.368 ]

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

Exercício Prático LPIC 09

Trabalhando com referências de células no LibreOffice

Instalação e configuração do comando sar no OpenSuSe

Erro ao formatar partições EXT4 no OpenSUSE [Resolvido]

Exercício Prático LPIC 06

Leitura recomendada

AWK - Validando endereços IPv4

Recuperando o LILO em 3 passos no Slackware

Gravando um CD rapidamente

Montando imagens ISO no OpenBSD

Encontrar e apagar todos os seus arquivos indesejáveis

  

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