===== 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