De acordo com as Leis 12.965/2014 e 13.709/2018, que regulam o uso da Internet e o tratamento de dados pessoais no Brasil, ao me inscrever na newsletter do portal DICAS-L, autorizo o envio de notificações por e-mail ou outros meios e declaro estar ciente e concordar com seus Termos de Uso e Política de Privacidade.
Monitorando servidores pelo celular
Colaboração: Daniel Roberto
Data de Publicação: 09 de Abril de 2007
Hoje irei mostrar um script que me ajudou muito a monitorar meus servidores,
ele envia um e-mail de aviso para você quando um dos servidores estiver fora
do ar.
Você já deve conhecer algum utilitário que faça a mesma coisa, mas tem algo
que este faz a mais. Usando um serviço do yahoo mail você pode redirecionar
os e-mails recebidos para o seu celular e desta maneira ser informado de
uma queda em qualquer lugar onde você estiver!!!
Você vai precisar instalar o programa msmtp.
apt-get install msmtp
Se você utilizar outra distribuição visite
http://sourceforge.net/project/showfiles.php?group_id=86651&package_id=90067&release_id=480212
Depois de instalar o programa, vamos configura-lo. Crie um arquivo na pasta
home do usuário que vai executar o script com o nome ".msmtprc" e cole todo
conteúdo abaixo:
account NOME_DO_USUARIO
host smtp.mail.yahoo.com.br
from EMAIL_VALIDO_NO_YAHOO
auth login
user NOME_DE_USUARIO_DO_EMAIL
password SENHA_DO_EMAIL
#If your SMTP Server supports TLS encryption, uncomment the next line
#tls
account default:NOME_USUARIO_DO_SISTEMA
Atenção observe que o arquivo ".msmtprc" é oculto. Agora execute o comando
chmod 600 .msmtprc
para modificar as permissões do arquivo. Depois disto
crie outro arquivo ainda na pasta home com o nome verifica e cole este
conteúdo nele
#!/bin/sh
#######################################
#Script para verificação de servidores
#
#Feito por DRMO
#12/10/2006
#######################################
local=' uol.com.br'
server1="NOME OU IP DO SERVIDOR"
server2="NOME OU IP DO SERVIDOR"
mail=SEU_EMAIL_VALIDO ( Só lembrando que este e-mail foi aquele configurado anteriormente no msmtp)
# Verificando link local (pingando host na internet)
ping -c 5 "$local"
[ $? = 1 ] && exit
# Pingando servidor numero 1
ping -c 5 "$server1"
[ $? = 1 ] && {
echo -e "From: alerta@alertando.com.br
Subject: servidor \n
\n\n
"$server1" is down" | msmtp "$mail"
}
sleep 10
# Pingando servidor numero 2
ping -c 5 "$server2"
[ $? = 1 ] && {
echo -e "From: alerta@alertando.com.br
Subject: servidor \n
\n\n
"$server2" is down" | msmtp "$mail"
}
Observe que primeiro foi feita uma verificação no "uol.com.br" para eliminar possíveis erros de conexão com a internet, só depois foi realizado o teste nos servidores.
Agora crie um arquivo ainda na pasta home com nome de "controler_verifica" e cole este conteúdo nele:
#!/bin/sh
# Matando processos existentes
pide=$(cat /tmp/controler)
kill -9 "$pide"
# Coloque aqui o valor de tempo em minutos com 1 (um) digito, que será o intervalo entre as verificações
#Exemplo: 10 = "Dez minutos"
tempo=20
time=$((60 * $tempo))
# Criando pid
echo "$$" > /tmp/controler
# condicional loop
while :
do
~/verifica
sleep "$time"
done
Crie só mais um arquivo ainda na pasta home com o nome de "matar_controler"
e cole este conteúdo nele:
#!/bin/sh
pide=$(cat /tmp/controler)
kill -9 "$pide"
Agora execute o comando na pasta home "chmod +x verifica controler_verfica
matar_controler" para tornar os arquivos executáveis.
Faça:
./controler_verifica&
Faça um teste!! Simule um servidor fora do ar!
Você já deve estar recebendo mensagens no seu e-mail do yahoo
Vá até este site e crie sua conta e siga as instruções de configuração
http://br.mobile.yahoo.com/mailalertas/
Crie também o filtro no Subject com o assunto "servidor" para que a mensagem
seja enviada para o seu celular.
Só lembrando que cada mensagem recebida no celular te torra +ou- 10 centavos!!
Eu só quero que este script rode das 8:00 às 06:00 de segunda à sexta. Pois
não quero ser acordado por uma mensagem no celular às 4:00 da manha né!!!!!!!!
Então coloco isso na crontab
00 8 * * 2-6 daniel ~/controler_verifica
00 18 * * 2-6 daniel ~/matar_controler
Resumo
O resultado será um script que testa 2 (ou mais) servidores de 10 em 10 minutos
de segunda à sexta das 8:00 às 18:00. Obviamente você irá precisar de no
mínimo 2 maquinas pois não seria possível a entrega do e-mail se maquina
estiver fora!!