- 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
- 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
- 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
- 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
- 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