Exercício Prático LPIC 04
Dica publicada em Linux / Configuração
Exercício Prático LPIC 04
LPIC 1:
LPIC 2:
Um sysadmin está verificando uma certa lentidão em um dos seus servidores. Ele precisa criar um script que informe o uso da memória RAM, CPU e disco rígido, três vezes seguidas no intervalo de um minuto em cada execução.
Ao final, o resultado deve ser gravado em um arquivo com extensão ".log" no diretório /var/log/ para análise.
Solução: alguns comandos que podem ser utilizados com esta finalidade, são:
Criei um script para ajudar a resolver esse problema. Porém, para este exercício, foquei mais nos comandos iostat e free.
Crie um arquivo com o nome "monitor.sh":
Script sem comentários:
Bom pessoal, procurei utilizar uma boa quantidade de comandos para que vocês possam praticar bastante e assim assimilar os assuntos abordados nos exames da LPI.
Lembrando que a prova é teórica, mas é preciso ter prática e familiaridade na execução dos comandos. Não deixem de praticar e estudar.
Até o próximo exercício!
- Tópico 103 - Comandos GNU/Linux e Unix
- Peso total: 26
- Tópico 105 - Shells, scripts e administração de dados
- Objetivo 105.2 - Editar e escrever scripts
- Peso: 4
LPIC 2:
- Tópico 200: Planejamento de Capacidade
- Peso: 8
Um sysadmin está verificando uma certa lentidão em um dos seus servidores. Ele precisa criar um script que informe o uso da memória RAM, CPU e disco rígido, três vezes seguidas no intervalo de um minuto em cada execução.
Ao final, o resultado deve ser gravado em um arquivo com extensão ".log" no diretório /var/log/ para análise.
Solução: alguns comandos que podem ser utilizados com esta finalidade, são:
- top;
- sar;
- vmstat;
- iostat;
- free, entre outros.
Criei um script para ajudar a resolver esse problema. Porém, para este exercício, foquei mais nos comandos iostat e free.
Crie um arquivo com o nome "monitor.sh":
#!/bin/bash
# Agrupei todos os comandos dentro uma função para facilitar e organizar a execução dos comandos.
funcao(){
# Declaração das variáveis
#
#Dentro do arquivo /proc/cpuinfo há uma vasta informação e assim utilizei
#o comando grep para filtrar apenas as informações referentes ao modelo
#do processador independentemente da escrita estava em maiúscula ou
#minúscula ( -i ). Isso utilizando o canalizador pipe para ir jogando a
#saída de um comando para outro. Como o cut, cortei apenas as informações
#desejadas. O comando uniq vai servir no caso de processadores com mais
#de um núcleo. Caso o mesmo não fosse utilizado, iriam aparecer
#informações repetidas a respeito do nome do processador.
#Também esporei várias formas de utilizar os comandos dentro de uma
#variável como na variável FREE eu uso o comando which que serve para
#indicar o local exato de um comando ou programa.
CPU=$(cat /proc/cpuinfo | grep -i "model name" | cut -c13-55 | uniq)
RAM=$(free -h | grep -i mem | cut -c14-21)
DISTRO=$(lsb_release -d | cut -c14-33)
KERNEL=$(uname -r)
ARQ=$(uname -i)
FREE=$(which free)
##### FIM #####
echo "__________________________"
echo
echo " MONITORAMENTO DO SISTEMA "
echo "__________________________"
echo
echo "Inicio: " $(date +%T-%d/%m/%Y)
echo
echo ">>> INFORMACOES DO SISTEMA <<<"
echo
echo "Sistema Operacional: " $DISTRO
echo "Kernel em Uso: " $KERNEL
echo "Arquitetura: " $ARQ
echo "Hostname: " $(hostname)
echo "Processador: " $CPU
echo "Total de Memoria RAM: " $RAM
echo
echo ">>> STATUS DA CPU <<<"
echo
#O comando iostat gera um relatório com estatísticas de uso da CPU e
#de entrada/saída de dispositivos e partições. Para mais informações
#detalhadas, execute o comando man iostat
#Aqui utilizei o comando sed para apagar duas linhas que eu não
#queria que fosse mostrada na saída do comando e que não ficariam
#interessantes no relatório.
#Caso no seu sistema não tenha o iostat, ele faz parte do pacote
#sysstat e pode ser baixado via:
#
# apt-get install sysstat
# ou
# yum install systat
#
#Nesta parte eu não quis utilizar uma variável para chamar o programa.
#Ao invés disse, botei a localização exata do mesmo através do comando
#which iostat. Sempre é interessante por o caminho completo nos scripts
#para evitar possíveis erros apesar de não ser obrigatório, pois você
#pode utilizar apena o nome do comando ou programa.
#Chamo a atenção para os números 60 e 3. Será mostrado o status da CPU
#nos últimos 60 segundos ( 1 minuto ) e o comando será executado três
#vezes nesse intervalo. Com isso, o SysAdmin poderá verificar como está
#a carga do sistema em um intervalo de 9 minutos produzindo uma análise
#mais confiável. Este tempo pode ser aumentado ou diminuído de acordo
#com a sua necessidade.
/usr/bin/iostat -c 60 3 | sed '1,2d'
echo
echo ">>> STATUS DA MEMORIA RAM <<< "
echo
#A contagem das informações do comando free é diferente do iostat. Aqui
#é preciso por os atributos -c, de contagem, e -s de segundos.
$FREE -h -c 3 -s 60
echo
echo ">>> STATUS DO HD <<<"
echo
echo "Utilizacao/Carga do Disco Rigido: "
echo
#Este comando vai exibi a capacidade do disco rígido bem como o percentual
#de utilização. A saída será em um formato mais legível e informando também
#os tipos de cada partição
/bin/df -hT
echo
/usr/bin/iostat -d 60 3 | sed '1,2d'
}
#O comando tee vai exibir as informações geradas pela saída dos comandos
#no monitor e escrevendo-as em um #arquivo de registro de log para
#consulta posterior
funcao | tee /var/log/sysrelatorio.log
Script sem comentários:
#!/bin/bash
funcao(){
# Declaracao das variaveis
CPU=$(cat /proc/cpuinfo | grep -i "model name" | cut -c13-55 | uniq)
RAM=$(free -h | grep -i mem | cut -c14-21)
DISTRO=$(lsb_release -d | cut -c14-33)
KERNEL=$(uname -r)
ARQ=$(uname -i)
FREE=$(which free)
##### FIM #####
echo "__________________________"
echo
echo " MONITORAMENTO DO SISTEMA "
echo "__________________________"
echo
echo "Inicio: " $(date +%T-%d/%m/%Y)
echo
echo ">>> INFORMACOES DO SISTEMA <<<"
echo
echo "Sistema Operacional: " $DISTRO
echo "Kernel em Uso: " $KERNEL
echo "Arquitetura: " $ARQ
echo "Hostname: " $(hostname)
echo "Processador: " $CPU
echo "Total de Memoria RAM: " $RAM
echo
echo ">>> STATUS DA CPU <<<"
echo
/usr/bin/iostat -c 60 3 | sed '1,2d'
echo
echo ">>> STATUS DA MEMORIA RAM <<< "
echo
$FREE -h -c 3 -s 60
echo
echo ">>> STATUS DO HD <<<"
echo
echo "Utilizacao/Carga do Disco Rigido: "
echo
/bin/df -hT
echo
/usr/bin/iostat -d 60 3 | sed '1,2d'
}
funcao | tee /var/log/sysrelatorio.log
Bom pessoal, procurei utilizar uma boa quantidade de comandos para que vocês possam praticar bastante e assim assimilar os assuntos abordados nos exames da LPI.
Lembrando que a prova é teórica, mas é preciso ter prática e familiaridade na execução dos comandos. Não deixem de praticar e estudar.
Até o próximo exercício!