[Shell Script] Monitorando sites pelo wget e notificando por email quando parar

Scripts para automa
Avatar do usuário
Elton
Administrator
Administrator
Mensagens: 1259
Registrado em: 10 Jun 2013 12:44
Status: Offline

[Shell Script] Monitorando sites pelo wget e notificando por email quando parar

Mensagem por Elton »

Esse Script criei em cima do wget o que faço fico dando wget no meu site quando a resposta for 200 meu site ok está quando a resposta for diferente disso o mesmo está fora do ar e assim recebo um aviso por email!!

Código: Selecionar todos

#!/bin/bash


SITE="seudominio"


wget --server-response "$SITE" 2>&1 | grep "HTTP/" | awk {'print $2'} > /var/log/teste
var1=$(sed -n 1' p;' /var/log/teste)
if [ $var1 = 200 ]; then
        echo "Site ON"
else
        echo "Site OFF"
        echo "SITE FORA DO AR " | mutt -s "SITE FORA DO AR " [email protected]
fi
exit 0;


"Colaborar atrai amigos, competir atrai inimigos ..."

Avatar do usuário
Elton
Administrator
Administrator
Mensagens: 1259
Registrado em: 10 Jun 2013 12:44
Status: Offline

Re:[Shell Script] Monitorando sites pelo wget e notificando por email quando parar

Mensagem por Elton »

mais um script esse segundo ta mais limpo!!! " LEMBRANDO QUE PARA ENVIAR EMAIL TEM QUE TER UM AGENTE NO LINUX USO POSTFIX!!

Código: Selecionar todos

#!/bin/bash
 
 
if [ "$(wget --spider -S "www.dominio.com.br" 2>&1 | grep "HTTP/" | awk '{print $2}')" = "200" ]; then
echo "Site ON"
else
echo "Site OFF"
echo "SITE FORA DO AR " | mutt -s "SITE FORA DO AR " [email protected]
fi
exit 0
Editado pela última vez por Elton em 20 Set 2013 22:12, em um total de 1 vez.
"Colaborar atrai amigos, competir atrai inimigos ..."

Avatar do usuário
Elton
Administrator
Administrator
Mensagens: 1259
Registrado em: 10 Jun 2013 12:44
Status: Offline

Re:[Shell Script] Monitorando sites pelo wget e notificando por email quando parar

Mensagem por Elton »

quem quiser adicionar algo fique a vontade belo script que merece atualizações!!!  :(
"Colaborar atrai amigos, competir atrai inimigos ..."

Avatar do usuário
Elton
Administrator
Administrator
Mensagens: 1259
Registrado em: 10 Jun 2013 12:44
Status: Offline

Re:[Shell Script] Monitorando sites pelo wget e notificando por email quando parar

Mensagem por Elton »

versão atualiazada!!!

Código: Selecionar todos

#!/bin/bash

SITES=("www.dominio1.com.br" "www.dominio2.com.br")
EMAILRECEBIMENTO="[email protected];[email protected]"


i=0
while [ $i -lt ${#SITES[@]} ]; do
  if [ "$(wget --spider -S ${SITES[$i]} 2>&1 | grep "HTTP/" | awk '{print $2}')" = "200" ]; then
    date
    echo "Site ON"
  else
    date
    echo "Site OFF"
    echo "***** SITE FORA DO AR **** ${SITES[$i]} " | mutt -s "***** SITE FORA DO AR ******* ${SITES[$i]} *****" $EMAILRECEBIMENTO
  fi
  let i++
done
exit 0
"Colaborar atrai amigos, competir atrai inimigos ..."

Avatar do usuário
Elton
Administrator
Administrator
Mensagens: 1259
Registrado em: 10 Jun 2013 12:44
Status: Offline

Re:[Shell Script] Monitorando sites pelo wget e notificando por email quando parar

Mensagem por Elton »

Versão Final do script!!

Código: Selecionar todos

#!/bin/bash
SITES=("www.seudominio.com.br/" "www.seudominio.com.br/")
EMAILRECEBIMENTO="[email protected];[email protected]"
STATUSCODE=("200" "201" "202" "203" "204" "205" "206" "207")
i=0
j=0
CONTROLE=0
while [ $i -lt ${#SITES[@]} ]; do
  let CONTROLE=0
  let j=0
  while [ $j -lt ${#STATUSCODE[@]} ]; do
    if [ "$(wget --spider -S ${SITES[$i]} 2>&1 | grep "HTTP/" | awk '{print $2}')" = ${STATUSCODE[$j]} ]; then
      date
      echo "Site ON"
      let CONTROLE=1
    fi
    let j++
  done
  if [ $CONTROLE = 0 ]; then
    date
    echo "Site OFF"
    echo "***** SITE FORA DO AR **** ${SITES[$i]} " | mutt -s "***** SITE FORA DO AR ******* ${SITES[$i]} *****" $EMAILRECEBIMENTO
  fi
  let i++
done
exit 0
"Colaborar atrai amigos, competir atrai inimigos ..."

Avatar do usuário
Elton
Administrator
Administrator
Mensagens: 1259
Registrado em: 10 Jun 2013 12:44
Status: Offline

Re:[Shell Script] Monitorando sites pelo wget e notificando por email quando parar

Mensagem por Elton »

Atualizei um bug quando estava trazendo um valor null creio que quando acontecia alguma instabilidade na minha rede que não conseguia pegar nenhum código de resposta dava como site off criei uma confição if que quando minha resposta for == "" o site vai estar on pois meu site so pode dar como off quando ele trazer o status code 400 para cima !!!

Código: Selecionar todos

#!/bin/bash

SITES=("www.seusite.com.br" "www.seusite1.com.br")
EMAILRECEBIMENTO="[email protected];[email protected]"
STATUSCODE=("200" "201" "202" "203" "204" "205" "206" "207")

i=0
j=0
CONTROLE=0
RESPOSTASITE=0



while [ $i -lt ${#SITES[@]} ]; do
  let RESPOSTASITE="$(wget --spider -S ${SITES[$i]} 2>&1 | grep "HTTP/" | awk '{print $2}')"
  let CONTROLE=0
  let j=0
  while [ $j -lt ${#STATUSCODE[@]} ]; do
         
    if [ "$RESPOSTASITE" == "" ] || [ $RESPOSTASITE -eq ${STATUSCODE[$j]} ]; then
      date
      echo "Site ON"
      let CONTROLE=1
    fi
    let j++ 
  done 
  if [ $CONTROLE = 0 ]; then
    date
    $RESPOSTASITE  >> /var/log/pingdown2.log
    echo "Site OFF" 
    echo "***** SITE FORA DO AR **** ${SITES[$i]} " | mutt -s "***** SITE FORA DO AR ******* ${SITES[$i]} *****" $EMAILRECEBIMENTO
  fi
  let i++
done
exit 0
"Colaborar atrai amigos, competir atrai inimigos ..."

Avatar do usuário
marceloleaes
Administrator
Administrator
Mensagens: 1516
Registrado em: 10 Jun 2013 12:45
Localização: Novo Hamburgo
Idade: 41
Contato:
Status: Offline

Re:[Shell Script] Monitorando sites pelo wget e notificando por email quando parar

Mensagem por marceloleaes »

Acho válido colocar uma linha opcional para enviar o email utilizando o sendEmail

Nem sempre temos o postfix ou outro mta configurado na máquina, e o sendEmail é mais pratico tbem  ;D
"Transportai um punhado de terra todos os dias e fareis uma montanha." Confúcio

Avatar do usuário
Elton
Administrator
Administrator
Mensagens: 1259
Registrado em: 10 Jun 2013 12:44
Status: Offline

Re:[Shell Script] Monitorando sites pelo wget e notificando por email quando parar

Mensagem por Elton »

blz marcelão vou analisar isso!! ;D
"Colaborar atrai amigos, competir atrai inimigos ..."

Avatar do usuário
Elton
Administrator
Administrator
Mensagens: 1259
Registrado em: 10 Jun 2013 12:44
Status: Offline

Re:[Shell Script] Monitorando sites pelo wget e notificando por email quando parar

Mensagem por Elton »

inclusão da linha de envio de email pelo sendemail!

Código: Selecionar todos

#!/bin/bash

SITES=("www.seusite.com.br" "www.seusite1.com.br")
EMAILRECEBIMENTO="[email protected];[email protected]"
STATUSCODE=("200" "201" "202" "203" "204" "205" "206" "207")

i=0
j=0
CONTROLE=0
RESPOSTASITE=0



while [ $i -lt ${#SITES[@]} ]; do
  let RESPOSTASITE="$(wget --spider -S ${SITES[$i]} 2>&1 | grep "HTTP/" | awk '{print $2}')"
  let CONTROLE=0
  let j=0
  while [ $j -lt ${#STATUSCODE[@]} ]; do
         
    if [ "$RESPOSTASITE" == "" ] || [ $RESPOSTASITE -eq ${STATUSCODE[$j]} ]; then
      date
      echo "Site ON"
      let CONTROLE=1
    fi
    let j++ 
  done 
  if [ $CONTROLE = 0 ]; then
    date
    $RESPOSTASITE  >> /var/log/pingdown2.log
    echo "Site OFF" 
    echo "***** SITE FORA DO AR **** ${SITES[$i]} " | mutt -s "***** SITE FORA DO AR ******* ${SITES[$i]} *****" $EMAILRECEBIMENTO
    sendmail -t -F SeuNome -f $EMAILRECEBIMENTO 
 fi
  let i++
done
exit 0
"Colaborar atrai amigos, competir atrai inimigos ..."

Responder

Voltar para “Scripts”