Segue uma dica simples para monitoramento de servidores através de envio de email. Crie o script "monitor.sh" para monitorar seu servidor através do ping e insira o código abaixo:
#!/bin/bash
set -x
/bin/ping -c4 IP
if [ $? = 0 ];
then
echo "Resposta Ok!"
else
/enviaemail.sh
fi
Salve-o e dê permissão a+x:
chmod a+x monitor.sh
Instale o pacote sendmail:
sudo apt-get install sendmail
Crie o script "enviaemail.sh" que enviará o e-mail, com conteúdo abaixo:
#!/bin/bash
DATA=$(date)
EMAIL_FROM="talmeida@talmeida.com.br" # usuario de email que se autentica no servidor SMTP
EMAIL_TO="suporte@empresa.com.br" # usuario que receberá os emails
#Servidor SMTP e porta utilizada
SERVIDOR_SMTP="mail.empresa.com.br:25" #endereço no servidor SMTP, observar no exemplo o yahoo utiliza a porta 587
SENHA=xxxxxxx #informe aqui a senha de autenticação no servidor SMTP
ASSUNTO="$HOSTNAME - $1"
MENSAGEM=$2
if [ "$1" == "" ] ;then
ASSUNTO="ASSUNTO"
fi
if [ "$2" == "" ] ;then
MENSAGEM="MENSAGEM $DATA "
fi
if [ "$3" != "" ] ;then
MENSAGEM="$2 `cat $3`"
fi
Salve esse arquivo e dê permissão a+x como no arquivo anterior. Agora coloque esse script monitor.sh no crontab a cada 5 minutos, pronto um simples monitoramento.
[2] Comentário enviado por airtonarantes em 09/10/2010 - 13:05h
danielbsb88,
Suponhamos 2 situações:
1ª) Digamos que o servidor de emails e DNS sejam mantidos na mesma rede da máquina que está executando esse script de monitoramento, então o email será enviado. Essa situação é típica quando se está trabalhando na empresa, onde todas as máquinas internas poderão trocar emails normalmente.
2ª) Digamos que a empresa tenha um link de backup, então se um dos links cair o email de aviso vai sair pelo outro link, avisando ao administrador onde quer que este esteja.