
Vamos começar bem (até porque agora que começam os meus exames, não sei quando volto a escrever algo para aqui).
Aqui está um pequeno ficheiro em bash scripting (ou shell scripting, como preferirem) que utilizo para detectar se algum serviço/processo está inactivo (obviamente também se pode procurar usando mesmo o comando status que alguns serviços possuem, mas desta forma torna-se mais personalizável).
Neste caso específico, vou usar o bind.
Vou também assumir que o script se encontra em /root/scripts/
Notem que os valores (nomes dos ficheiros / valor mínimo de processos em lista) podem mudar de servidor para servidor.
Primeiro, criamos o ficheiro:
# nano /root/scripts/bind_check.sh
Agora, cola-se este conteúdo, devidamente editado
#!/bin/sh
email=o.seu.email@qualquercoisa.com # ALTERAR: O email que vai receber o aviso
progname=/usr/sbin/named # ALTERAR: O que vai ser procurado
FILE=/root/scripts/bind_check_result # O ficheiro "temporário" para onde é gravado o que será enviado como email
if [ "$(ps aux | grep -c $progname)" -lt 1 ]; then
echo "$progname em baixo em $(date)" > $FILE
/etc/init.d/bind9 restart >> $FILE # ALTERAR: Aqui é o comando a ser executado caso se verifique que o processo está em baixo, e cujo resultado segue no email, para confirmar se iniciou ou não
mail -s "$progname em $(hostname) em baixo" "$email" < $FILE
fi
Para Guardar usa-se "CTRL + O" (confirma-se a escrita com um enter) e para sair "CTRL + X".
Obviamente não se podem esquecer de tornar o ficheiro executável.
# chmod 700 /root/scripts/bind_check.sh
E agora, colocá-lo na crontab, adicionando-lhe a seguinte linha:
*/15 * * * * /root/scripts/bind_check.sh >> /dev/null 2>&1
Para quem não sabe, para abrir o crontab e editar, é normalmente usado:
# crontab -e


