1
resposta

Adicionando o monitoramento da CPU no nosso script

E aí, pessoal!

Seguindo os estudos, depois de a gente ralar para montar aquele comando complexo do 'top' para pegar o uso da CPU, agora é a hora de colocar ele para funcionar de verdade dentro do nosso script 'monitoramento-sistema.sh'.

Adicionando o Comando da CPU

O processo é simples: a gente precisa editar o script (com 'vim monitoramento-sistema.sh' ou outro editor) e adicionar aquela "tripa" de comando do 'top/grep/sed/awk' dentro da função 'monitorar_hardware()'.

É importante lembrar de usar o '>>' no final para adicionar (append) a saída no mesmo arquivo de log da memória, e não apagar o que já estava lá.

A função ficaria assim:

function monitorar_hardware() { echo "$(date)" >> $LOG_DIR/monitoramento_hardware.txt free -h | grep Mem | awk '{print "Total: " $2 ", Usada: " $3 ", Livre: " $4}' >> $LOG_DIR/monitoramento_hardware.txt

(LINHA NOVA ADICIONADA:)
top -bn1 | grep "Cpu(s)" | sed "s/.*, ([0-9.])% id./\1/" | awk '{print "Uso da CPU: " 100 - $1 "%"}' >> $LOG_DIR/monitoramento_hardware.txt
}

Melhorando o Log da RAM

Já que estamos mexendo nessa função, tem uma melhoria pequena que a aula sugere e que faz sentido: o nosso log da memória RAM estava saindo só como "Total: ...". Fica bem melhor se a gente especificar que é a memória RAM.

A gente só precisa mudar o texto dentro do 'print' do 'awk' do comando 'free'.

Antes era: ... | awk '{print "Total: " $2 ", Usada: " $3 ", Livre: " $4}' >> ... Agora fica: ... | awk '{print "Memoria RAM Total: " $2 ", Usada: " $3 ", Livre: " $4}' >> ...

A Função Completa e Atualizada

Juntando as duas mudanças, a função 'monitorar_hardware' final fica assim:

function monitorar_hardware() { echo "$(date)" >> $LOG_DIR/monitoramento_hardware.txt

(Linha da RAM atualizada para ser mais descritiva:)
free -h | grep Mem | awk '{print "Memoria RAM Total: " $2 ", Usada: " $3 ", Livre: " $4}' >> $LOG_DIR/monitoramento_hardware.txt

(Linha da CPU que acabamos de adicionar:)
top -bn1 | grep "Cpu(s)" | sed "s/.*, ([0-9.])% id./\1/" | awk '{print "Uso da CPU: " 100 - $1 "%"}' >> $LOG_DIR/monitoramento_hardware.txt
}

Testando o Script

Agora é só salvar o arquivo e sair do editor (no Vim: Esc e depois :wq).

Para rodar, o de sempre: ./monitoramento-sistema.sh

E para verificar se funcionou, a gente olha o arquivo de log: cat monitoramento_sistema/monitoramento_hardware.txt

O resultado esperado é que, no final do arquivo, apareça um novo bloco com a data, a linha da "Memoria RAM Total:" (com o texto novo) e a linha nova do "Uso da CPU:". As execuções antigas vão continuar lá, porque usamos o '>>' (append).

É isso! Agora o nosso log de hardware está monitorando RAM e CPU.

1 resposta

Oi, João! Como vai?

Agradeço por compartilhar.

Gostei muito da forma como você explicou o uso do iostat e a filtragem com grep e awk. Sua explicação está clara e mostra um bom domínio dos comandos para monitoramento de I/O de disco, complementando bem as métricas de CPU e RAM.

Continue explorando maneiras de tornar seus logs mais organizados e legíveis.

Conteúdos relacionados
Alura Conte com o apoio da comunidade Alura na sua jornada. Abraços e bons estudos!