Exercício Prático LPIC 09
Dica publicada em Linux / Introdução
Exercício Prático LPIC 09
LPIC-1
Um administrador de sistemas Linux percebeu que um processo está consumindo uma grande quantidade de memória deixando o sistema lento. Ele precisa criar um script que faça uma verificação a cada dez minutos e veja se o consumo de memória, por este processo, é maior ou igual a 1000 MB. Caso satisfaça a essa condição, o mesmo deverá ser finalizado.
É isso aí pessoal! Mais um exercício para ajudá-los nas provas. Como sempre, recomendo aprofundar os temas abordados tendo em vista que é apenas uma dica e sendo assim se faz necessário um estudo mais aprofundado para entender o funcionamento dos comandos.
Até o próximo exercício e bons estudos!
- Tópico 103: Comandos GNU/Unix (Peso 26)
- Tópico 105: Shells, Scripts e administração de dados (10)
Um administrador de sistemas Linux percebeu que um processo está consumindo uma grande quantidade de memória deixando o sistema lento. Ele precisa criar um script que faça uma verificação a cada dez minutos e veja se o consumo de memória, por este processo, é maior ou igual a 1000 MB. Caso satisfaça a essa condição, o mesmo deverá ser finalizado.
SOLUÇÃO
No script abaixo, utilizei como exemplo o Chrome. Substitua pelo aplicativo que desejar.#!/bin/bash # A saída do comando ps mostra a quantidade de memória usada em % (porcentagem) qtd_mem_proc=$(ps -ux 2> /dev/null | grep chrome | cut -d ' ' -f8 | head -n1 | grep [0-9].[0-9]) # Quantidade total de memória que tem o computador total_mem=$(free -m | grep -i mem | cut -c15-18) # Essa fórmula vai me dizer a quantidade que o aplicativo chrome está utilizando em MB (MegaBytes) # lembrando que o comando ps retornou essa quantidade em porcentagem # O comando tr no final da fórmula é utilizado para retirar o separador de casas decimais gerado pelo # scale. Deixando assim a visualização do resultado mais interessante calculo2=$(echo "scale=1;($total_mem*$qtd_mem_proc)/100" | bc -l | cut -c1-3 | tr '.' ' ') # Aqui estipulei a condição de que quando o processo atingir um valor maio ou igual a 1000MB, o # mesmo seja finalizado para não prejudicar o sistema if [ $calculo2 -ge 1000 ]; then echo "Memória muito alta" killall -9 chrome else echo "Memória baixa" fi # Abaixo mostra o total de memória que o processo estava utilizando echo $calculo2 # 600 centésimos de segundos equivale a 10 minutos sleep 600
É isso aí pessoal! Mais um exercício para ajudá-los nas provas. Como sempre, recomendo aprofundar os temas abordados tendo em vista que é apenas uma dica e sendo assim se faz necessário um estudo mais aprofundado para entender o funcionamento dos comandos.
Até o próximo exercício e bons estudos!