Мониторинг Telegram-бота: как автоматически перезапускать скрипт на Python

В этой статье я расскажу, как создать простой скрипт мониторинга для Telegram-бота. Вы научитесь писать Bash-скрипт, который проверяет, работает ли бот, и при необходимости перезапускает его. Также я покажу, как настроить cron для регулярного запуска скрипта, чтобы обеспечить работу вашего бота.

Телеграм бота который отправляет индекс качества воздуха каждое утро в этот канал я написал за один вечер. Как его можно крашнуть или какие могут у него быть ошибки я не знаю, да и времени особо на это не было. Работает и ладно!

Но я предвидел, что бот в любой момент может из-за чего то упасть и я узнаю об этом только на утро, когда увижу, что сообщение бот в канал не отправил. Поэтому я сделал это:

Создаём скрипт мониторинга

Создаём сам файл нашего скрипта

sudo nano /bin/telegram-bot

в него пишем вот такой скрипт

#!/bin/bash
​
 if ps -ax|grep 'telegram-bot.py'|grep -v grep >/dev/null ;
 then
 wait
else
 echo bot off !!
​
cd /home/zero/telegram-trello/
/usr/bin/python3 telegram-bot.py >/logs.txt &
fi

По коду видим, спрашиваем утилитой ps и ищем запущенный процесс с нашим названием .py файла и если его не находит, то выводит сообщение bot off. И если бот упал или выключен, то мы его опять включаем и записываем логи в файл logs.txt

Отлично! Теперь там нужно запускать этот скрипт. Для этого воспользуемся crontab

Запускаем скрипт по расписанию

Пишем, команду sudo crontab -e в самый низ файла вставляем */1 * * * * /bin/telegram-bot

/1 означает, что мы будем запускать наш скрипт каждую минуту.

Поэтому даже если у нас бот отключиться по какой-то причине, то он заного запуститься. На скорую руку в самый раз. А что временно, то самое постоянное.