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.
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
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!!
This policy contains information about your privacy. By posting, you are declaring that you understand this policy:
This policy is subject to change at any time and without notice.
These terms and conditions contain rules about posting comments. By submitting a comment, you are declaring that you agree with these rules:
Failure to comply with these rules may result in being banned from submitting further comments.
These terms and conditions are subject to change at any time and without notice.
Comentários