Как отправить уведомление cron в Telegram
Для настройки отправки уведомления в телеграм при падении cron-задания нужно сделать следующее:
- создать Telegram_бота
- узнать chat_id пользователя / группы куда будет отправлено уведомление
- написать скрипт, отправляющий уведомление через botApi
- настроить crontab
1.Создание Telegram-бота
В Telegram:
- Напишите @BotFather
/start/newbot- Сохраните BOT_TOKEN (выглядит как
123456:ABC-DEF…)
2️. Узнать chat_id
Самый простой способ:
- Напишиье что-нибудь своему боту
- Откройте в браузере:
https://api.telegram.org/bot<BOT_TOKEN>/getUpdates
- В ответе будет:
"chat": {
"id": 123456789,
...
}
Это и есть CHAT_ID пользователя / группы. Альтернативно — можно использовать IdBot @myidbot (просто добавьте в группу, или напишите боту)
3. Скрипт отправки уведомления
#!/bin/bash
BOT_TOKEN="123456:ABC-DEF"
CHAT_ID="123456789"
MESSAGE="$1"
curl -s -X POST "https://api.telegram.org/bot${BOT_TOKEN}/sendMessage" \
-d chat_id="${CHAT_ID}" \
-d text="${MESSAGE}"
Установите Ваши BOT_TOKEN, CHAT_ID
Сделайте скрипт исполняемым:
chmod +x /usr/local/bin/telegram_alert.sh
4. Настройте crontab
0 2 * * * /usr/local/bin/check_disk.sh || /usr/local/bin/telegram_alert.sh "Ошибка при проверке диска"
CRON Manager
CRON manager — это панель управления для ваших cron-заданий с удобным UI и системой уведомлений.
Вы создаете задание через веб-интерфейс: задаете команду, расписание, пользователя и способы оповещения, а система сама обновляет crontab и следит за запуском
В CRON Manager из коробки есть функционал отправки уведомлений через Telegram / email / webhook
Узнать больше о CRON Manager можно на странице cronmanager.spheragroup.ru