2025-04-03
scriopt

Иногда может возникнуть необходимость мониторить веб-сервис или сайт в краткосрочной перспективе, разворачивать для этого готовое решение может быть нецелесообразно или вовсе не быть подходящей виртуалки и т.д.

Столкнувшись с этим решил написать простой скрипт на python, для кого-то он может показаться топорным, но задачу свою выполняет. Принцип следующий – после запуска скрипт каждые 10 минут опрашивает сайт на ошибки и его доступность, если возвращаемый код 200 (сайт доступен и с ним все хорошо), то в командной строке генерируется запись об этом с указанием времени опроса, если сайт недоступен (по умолчанию 5 сек), либо возвращаемая ошибка 502 Bad Gateway или же другие ошибки – скрипт отсылает указанному пользователю аларм об этом

import requests  #библиотека запросов
import telebot   #библиотека работающая с телеграм
import schedule  #библиотека для расписания запуска
import time      #библиотека для подстановки текущего времени

print(f'Скрипт запущен {time.asctime()}')  #пишет в строку время запуска скрипта
bot = telebot.TeleBot('20686243fafagagagrarghrhrhrhrheahymayDxtFg', parse_mode=None) #Заменить Токен бота Telegram на свой, кавычки оставить
idtg = -144454656763737  #вписать id telegram получателя, без кавычек / дефис перед цифрами ставится если это группа, если конкретный получатель, то дефис не нужен
url = 'https://imaxis.ru'  # вписать URL проверяемого сайта, кавычки оставить

def checksite():
      try: 
              r = requests.get(url, timeout=5) #timeout = можно изменить время таймаута получения статуса сайта в секундах
              if r.status_code != 200:
                      bot.send_message(idtg, f'{url} выдает код ошибки {r.status_code}! Сайт не доступен с {time.asctime()}')
              else:
                      print(f'{url} работает {time.asctime()}')
      except:
              bot.send_message(idtg, f'Невозможна проверка {url}! Возможно сайт указан с ошибкой или наблюдаются проблемы с доступом в интернет! Unknown Error {time.asctim>
                print(f'Невозможна проверка {url}! Возможно сайт указан с ошибкой или наблюдаются проблемы с доступом в интернет! Unknown Error {time.asctime()}')

schedule.every(600).seconds.do(checksite) #время опроса в секундах

while True:
    schedule.run_pending()

Запустить скрипт можно и на windows и на linux с установленным python3 и доустановленными библиотеками

pip install requests

pip install schedule

pip install telebot

или 

pip3 install requests

pip3 install schedule

pip3 install telebot

При желании можно скомпилировать в exe для винды

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *