Войти в IT
Иногда может возникнуть необходимость мониторить веб-сервис или сайт в краткосрочной перспективе, разворачивать для этого готовое решение может быть нецелесообразно или вовсе не быть подходящей виртуалки и т.д.
Столкнувшись с этим решил написать простой скрипт на 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 для винды