Script para monitoramento de processos em execução no sistema
Publicado por Maurilio Alberone 22/07/2008
[ Hits: 20.067 ]
Homepage: www.peta5.com.br
Download monitora-processos.sh
Segue um script básico para monitoramento de processos executados em seu computador.
Pode ser usado para monitorar qualquer programa, apenas inserindo-os como parâmetro na execução do script, entre aspas e separados por espaço.
Cria um log com o resultado do monitoramento e envia um email caso o processo não seja encontrado em execução.
Uso no crontab de meu servidor sendo executado a cada 5 minutos e tem funcionado bem. Comentários e sugestões são bem vindas.
Maurilio - www.peta5.com.br
#!/bin/bash
#Criado por Maurilio Alberone em 30/06/2008 - maurilio@peta5.com.br
#Script para verificar se determinados processos estão em execução no seu servidor.
#Os processos a serem monitorados devem ser passados como parâmetro no momento de execução deste script, entre aspas e separados por espaço.
#Por exemplo:
#./monitora-processos.sh "apache2" "squid" "dhcpd"
#Verifica se o arquivo temporário existe e o remove.
if [ -e /tmp/processos.tmp ]; then
rm /tmp/processos.tmp
fi
#Cria os diretórios para armazenamento do log
mkdir /srv/processos/$(date +%Y)
mkdir /srv/processos/$(date +%Y)/$(date +%m)
#Executa para cada processo passado como parâmetro.
for i in "$@"; do
#Executa o comando ps para todos os usuários e filtra com o grep o processo monitorado, depois são executados filtros inversos para excluir
#aparições da execução do próprio grep e do nosso script. O resultado, se existir, é salvo em um arquivo temporário.
ps aux | grep "$i" | grep -v "grep" | grep -v "monitora-processos.sh" > /tmp/processos.tmp
#Calcula-se o número de linhas do arquivo criado acima e atribui esse valor à variável A.
A=$(wc -l /tmp/processos.tmp | awk '{print $1}')
#Se A é maior ou igual a 1 significa que o processo está em execução,
#então é salva uma linha contendo um OK para o processo monitorado naquele momento.
#Senão é salvo um ERRO no log e tembém é enviado um email para o administrador do sistema avisando do ocorrido.
if [ $A -ge 1 ]; then
echo -e "$i\tOK\t$(date +"%x\t%X")" >> /srv/processos/$(date +%Y)/$(date +%m)/$(date +%d).log
else
echo -e "$i\tERRO\t$(date +"%x\t%X")" >> /srv/processos/$(date +%Y)/$(date +%m)/$(date +%d).log
echo -e "\nPor algum motivo inesperado o processo $i não está sendo executado neste momento." | mutt -s "[ALERTA] Problemas com $i em $(date +"%x %X")" email@dominio.com.br -a /tmp/processos.tmp
fi
done
Somar e exibir resultados gerados pelo monitoramento do DNS
Mantendo o transmission-daemon funcionando
Versão 0.2: Integrar/Sincronizar Firefox/Thunderbird com o KDE
Script para mostrar IP, usando zenity
KDE Plasma - porque pode ser a melhor opção de interface gráfica
Gentoo: detectando impressoras de rede e como fixar uma impressora por IP
Como o GNOME conseguiu o feito de ser preterido por outras interfaces gráficas
Por que sua empresa precisa de uma PKI (e como automatizar EMISSÕES de certificados via Web API)
Instalando NoMachine no Gentoo com Systemd (acesso Remoto em LAN)
Instalar Linux em notebook Sony Vaio VPCEG13EB (13)
Vou destruir sua infância:) (7)
Interface gráfica com problema (0)









