Wget agenda enviando correio se o tempo de resposta for 5 segundos

1

Estou usando um script chamado Responser, que envia e-mails quando qualquer um dos meus sites está inativo / lento. Eu só queria verificar se ele está enviando o e-mail apenas se os sites estiverem realmente inativos ou lentos (à medida que eu verifiquei, acessei assim que recebi as mensagens de erro e os sites estavam bem). Eu pensei em usar wget como mostra a velocidade e o tempo de resposta e eu quero agendar para comparar com o meu script responser se ambos enviam o e-mail ao mesmo tempo dizendo erro.

Eu instalei o postfix e pude enviar e-mails usando o comando mail para qualquer ID de e-mail do terminal. Eu quero que a saída de wget http://www.mysite.com seja enviada com a condição se o tempo de resposta for maior que 5 segundos. Então eu posso agendar para rodar a cada 5 minutos. Eu vi muitos tendo boas habilidades de programação aqui e espero que alguém possa me ajudar.

Obrigado!

    
por user3215 21.04.2011 / 19:01

1 resposta

2

O script que você quer é algo assim:

#!/bin/bash
# by desgua to test server down
# 
# This script is supposed to be named ".ping.time.sh" and
# to be put at ~/
# to test what happens when server is down: 
# change www.mysite.com for www.serverdown.com  
# 
# As asked, I supposed you have a script to send mail and named
# ~/.script.to.send.mail.sh 
# 
sleep 300          # as asked, to run at every 5 minutes
pingtime=$(ping -w 5 www.mysite.com | grep ttl)

echo $pingtime

if [ $pingtime = ] ; then 
   echo 'down' ; ~/.script.to.send.mail.sh ; else
   echo 'up' ; ~/.ping.time.sh
fi

ps. Em seu script para enviar o e-mail, coloque algo para executar novamente o script que fiz depois que o e-mail foi enviado

    
por desgua 21.04.2011 / 20:26