1
resposta

[Sugestão] Resolução da atividade

  1. Crie um script que utiliza comandos como ps e grep para monitorar os processos que estão utilizando uma porcentagem significativa da CPU.

Não sei onde entraria o grep neste caso, já que ele serve para filtrar um conteúdo especifico e não trazer uma visualização do que esta acontecendo, por isso programei só um algo que informe as primeiras 10 linhas dos que tem mais autoconsumo de cpu.

#! /bin/bash

logfile=/var/log/usocpu.log

echo "Os 10 com maior consumo de cpu" >> $logfiel
TZ='America/Sao_Paulo' date >> $logfile
ps aux --sort=-%cpu | head -n 10 >> $logfile
  1. Desenvolva um script que utiliza comandos como ps e sort para exibir os processos que estão consumindo mais memória.

Este faz mais sentido, busca os que tão usando mais memória e joga num log com a data.

#! /bin/bash

logfile=/var/log/usomem.log

echo "Os 10 com maior consumo de memoria" >> $logfile
TZ='America/Sao_Paulo' date >> $logfile
ps aux --sort=-%mem | head -n 10 >> $logfile
  1. Crie um script que verifica se um processo específico está em execução e exibe seu status.

Como na pergunta pede o status, e isso já vai dizer tudo, então algo simples, pergunta pro usuário qual processo ele quer ver, e joga na tela seu status.

#! /bin/bash

read -p "Informe o processo que deseja consultar: " processo

service $processo status
  1. Elabore um script para analisar os logs do sistema em busca de mensagens de erro relacionadas a processos.

Vai no syslog, caça os erros e joga tudo num arquivo de log.

#! /bin/bash

logfile=/var/log/problema.log

echo "-- Inicio verificando erros no syslog --" >> $logfile
TZ='America/Sao_Paulo' date >> $logfile
cat /var/log/syslog | grep -i error >> $logfile
echo "-- fim da verificacao --" >> $logfile
  1. Crie um script para monitorar as mensagens de erro no log do sistema em intervalos regulares usando cron jobs. O script deve registrar em um arquivo as últimas 5 linhas de mensagens de erro, possibilitando uma visão periódica da atividade do sistema.

Mesma coisa do anterior, só que agora grava apenas 5 últimas linha no log, com adicional do agendamento via cron.

#! /bin/bash

logfile=/var/log/problema.log

echo "-- Inicio verificando erros no syslog --" >> $logfile
echo "-- ultimas 5 linhas --" >> $logfile
TZ='America/Sao_Paulo' date >> $logfile
cat /var/log/syslog | grep -i error | tail -n 5 >> $logfile
echo "-- fim da verificacao --" >> $logfile

crontab -e, considerando o script na raiz /.

*/10 * * * * /verificacao_periodica_erro10m.sh
1 resposta

Oi, Jean! Como vai?

Agradeço por compartilhar.

Gostei da sua resolução, principalmente no uso do ps aux --sort para destacar processos por CPU e memória. Sua abordagem de registrar logs com data e mensagens bem organizadas ajuda bastante no monitoramento.

Continue explorando esses comandos, pois cada ajuste dá mais clareza e controle no uso do sistema.

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