Оповещения · Telegram

Уведомления о сбоях cron в Telegram

Получайте в Telegram уведомления о пропусках, ошибках и восстановлении cron-задач. Готовая обёртка и настройка канала в Tickwatch.

Free: 5 мониторов, Telegram и email.

Пример уведомления

● nightly-import

Пропущен ожидаемый запуск. Откройте монитор, чтобы проверить историю.

Открыть монитор

Демонстрационные данные. Вид и состав сообщения зависят от канала и типа события.

Когда это нужно

Сообщение «готово» из скрипта приятно получать, но его отсутствие легко пропустить в чате. Tickwatch следит за дедлайном и отправляет сообщение, когда результата нет, задача завершилась ошибкой или снова заработала. Токен Telegram-бота в скрипт задачи добавлять не нужно.

Как подключить

  1. 1

    В разделе каналов создайте Telegram-канал и завершите привязку через бота Tickwatch.

  2. 2

    Назначьте подтверждённый канал монитору и проверьте настройки тихих часов.

  3. 3

    Подключите обёртку и вызовите ошибку в тестовой задаче. После успешного запуска проверьте сообщение о восстановлении.

Готовый пример

Нужны Bash, curl и uuidgen на сервере задачи. Сохраните код как /opt/tickwatch-run.sh, замените URL пинга своим и укажите абсолютный путь к рабочему скрипту. Ключ пинга не публикуйте. Обёртка сохраняет код завершения задачи; ошибка отправки сигнала её не прерывает.

tickwatch-run.sh
#!/usr/bin/env bash
# Save as tickwatch-run.sh; run: bash tickwatch-run.sh /path/to/job.sh
if [ "$#" -eq 0 ]; then echo "Usage: $0 command [args...]" >&2; exit 2; fi
PING='https://ping.tickwatch.dev/YOUR_PING_KEY'
RID=$(uuidgen) || exit 1
ping() {
  curl -fsS --connect-timeout 3 --max-time 5 --retry 2 --retry-max-time 12 \
    -X POST "$PING/$1?rid=$RID" >/dev/null 2>&1 || true
}
finish() {
  code=$?
  trap - EXIT
  if [ "$code" -eq 0 ]; then ping ""; else ping fail; fi
  exit "$code"
}
trap finish EXIT
trap 'exit 130' INT
trap 'exit 143' TERM
ping start
"$@"
Запуск или настройка
0 3 * * * /usr/bin/bash /opt/tickwatch-run.sh /usr/local/bin/job.sh

Что проверить перед запуском

  • Проверяйте не только получение тестового сообщения, но и назначение канала конкретному монитору.

  • Тихие часы пропускают уведомления в канал, а не откладывают их до утра. Инцидент остаётся в кабинете.

  • Для критичных задач можно добавить email как ещё один канал. Доставка зависит и от доступности внешнего сервиса.

Частые вопросы

Telegram доступен бесплатно?

Да, Telegram и email входят в Free. Лимиты мониторов и хранения истории зависят от тарифа.

Нужно писать своего бота?

Нет. Канал подключается через бота Tickwatch. В задаче нужен только её URL пинга.

Проверьте первый запуск, пока задача ещё работает

Создайте монитор, подставьте свой URL пинга и убедитесь, что приходят сигналы и уведомления.

Уведомления о сбоях cron в Telegram · Tickwatch