Мониторинг 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 означает, что мы будем запускать наш скрипт каждую минуту.
Поэтому даже если у нас бот отключиться по какой-то причине, то он заного запуститься. На скорую руку в самый раз. А что временно, то самое постоянное.