Ferramentas de Usuário

Ferramentas de Site


public:tutoriais:linux:downdetector-telegram

Verifica serviços no Downdetector

O script base é o mesmo essa postagem será dividida em 3 partes: genérica, para o .com e para o .com.br.

Genérico

Criar uma pasta e colocar o caminho na váriável “path”. Exemplo: mkdir /etc/Downdetector

path="/etc/Downdetector"

Para downdetector.com.br

Para baixar a página arquivo e salvar como “index.html”, usando o “quiet” do “wget”.

wget -q https://downdetector.com.br/arquivo/ -O $path/index.html

Salvar a data no formato dd/mm/yyyy na variável.

currentDate=$(date +%d/%m/%Y)

Contar quantas entradas do dia de hoje existem.

countServices=$(grep "$currentDate" $path/index.html | wc -l)

Salva o que está “fora-do-ar”, tirando as “/” e apenas com o número de linhas obtidos acima. Desta forma fica apenas o nome do serviço que esta fora (cut).

serviceName=$(grep -i "fora-do-ar" $path/index.html | cut -d"/" -f3 | head -n $countServices)

Verifica se o arquivo existe, caso não exista ele é criado. Esse arquivo vai ser usado para controlar as notificações.

if [ ! -f $path/numberDownBr  ];then
  echo 0 > $path/numberDownBr
fi

Joga o conteúdo, número de serviços fora, do arquivo para a variável.

numberServicesDownOld=$(cat $path/numberDownBr)

Testa se o número antigo de serviços fora e o atual é diferente. Se for diferente executa o conteúdo do IF.

if [ $countServices != $numberServicesDownOld ];then

  # Salva o novo número de serviços fora no arquivo
  echo $countServices > $path/numberDownBr
  
  # Verifica se a variável tem conteúdo e faz o envio do alerta via Telegram.
  if [[ ! -z $serviceName ]];then
    
    curl -s -X POST \
    https://api.telegram.org/bot000000:000000000000/sendMessage \
    -d text="
    ===================================
    *<    DOWNDETECTOR - NACIONAL    >*
    ===================================
    Existem $countServices serviços com problema nacionalmente.
    São eles:
    ==============
    $serviceName
    ==============
    Para maiores informações, acesse -> https://downdetector.com.br/arquivo/
    ========================" \
    -d chat_id=-00000000 \
    -d parse_mode="markdown" > /dev/null
    fi # Fim do IF da notificação
fi # Fim do iF do número de serviços

Para downdetector.com.br

Para baixar a página arquivo e salvar como “index.html”, usando o “quiet” do “wget”. wget -q https://downdetector.com/arquivo/ -O $path/index.html

Salvar a data no formato mm/dd/yyyy na variável, formato usado no site .com.

currentDate=$(date +%m/%d/%Y)

Conta quantas entradas do dia de hoje existem.

countServices=$(grep "$currentDate" $path/index.html | wc -l)

Salva o que está “fora-do-ar”, tirando as “/” e apenas com o número de linhas obtidos acima. Desta forma fica apenas o nomo do serviço que esta fora (cut).

serviceName=$(grep -i "/status/" $path/index.html | cut -d"/" -f3 | head -n $countServices)

Verifica se o arquivo existe, caso não exista ele é criado. Esse arquivo vai ser usado para controlar as notificações do .com.

if [ ! -f $path/numberDown  ];then
echo 0 > $path/numberDown
fi

Joga o conteúdo do arquivo para a variável.

numberServicesDownOld=$(cat $path/numberDown)

Testa se o número antigo de serviços fora e o atual é diferente. Se for diferente executa o conteúdo do IF.

if [ $countServices != $numberServicesDownOld ];then

  # Salva o novo número de serviços fora no arquivo
  echo $countServices > $path/numberDown
  
  # Verifica se o arquivo "notification" tem conteúdo e faz o envio do alerta via Telegram.
  if [[ ! -z $serviceName ]];then
  
    curl -s -X POST \
    https://api.telegram.org/bot534478184:AAEcrOIStYsyvhzsrrba6hy4nMUbwmJu514/sendMessage \
    -d text="
    ================================
    *<    DOWNDETECTOR - GLOBAL   >*
    ================================
    Existem $countServices serviços com problema globalmente.
    São eles:
    ==============
    $serviceName
    ==============
    Para maiores informações, acesse -> https://downdetector.com/arquivo/
    ========================" \
    -d chat_id=-1001472408222 \
    -d parse_mode="markdown" > /dev/null
    fi # Fim do IF da notificação
fi # Fim do iF do número de serviços

exit 0
public/tutoriais/linux/downdetector-telegram.txt · Última modificação em: 2024/08/25 18:39 por 127.0.0.1