Cron не повідомляє про збої. Job падає, розклад продовжує рухатися далі, і ви дізнаєтеся про це через кілька днів від клієнта. Cronitorex очікує пінг від кожного запуску і сповіщає вас протягом 60 секунд, коли один із них не приходить.
Кожен запуск повідомляє run на старті, потім complete чи fail при завершенні. Два додаткові виклики у вашому crontab: цього достатньо. Без агента, без демона, без бібліотеки для встановлення.
З цих пінгів Cronitorex будує хронологію для кожного job'а: тривалості, exit-коди, історію збоїв. Запуск, що почався і ніколи не завершився, теж рахується як збій.
*/5 * * * * root cronitorex ping db-backup run; /opt/backup.sh && cronitorex ping db-backup complete || cronitorex ping db-backup fail
Впалий сервер не надсилає жодного пінгу fail. Cronitorex знає очікуваний інтервал кожного job'а і чекає додатковий пільговий період, щоб поглинути звичайні коливання. Коли це вікно закривається без пінгу, ви отримуєте сповіщення про пропущений запуск.
Обидва значення ви налаштовуєте самі для кожного монітора. Нічний бекап із 15-хвилинним пільговим періодом поводиться інакше, ніж job синхронізації, що виконується кожні 5 хвилин із 60-секундним пільговим періодом.
Клієнт cronitorex.sh обгортає вашу команду: надсилає run, виконує job, вимірює тривалість, захоплює exit-код та останні рядки stderr, потім завершується complete чи fail. Ви змінюєте одне слово у crontab, а не свій скрипт.
Уже маєте повний crontab? Команда discover читає його і створює монітор для кожного знайденого job'а, беручи розклад безпосередньо з cron-виразу.
# обгортаємо будь-який job: захоплюємо exit-код, тривалість і stderr cronitorex.sh run db-backup -- /opt/backup.sh # імпортуємо наявний crontab як монітори cronitorex.sh discover /etc/crontab
Так. Будь-що, що може надіслати HTTP-запит, може надіслати пінг: таймери systemd, Kubernetes CronJobs, задачі Airflow, GitHub Actions, Планувальник завдань Windows. Cronitorex бачить лише пінги, а не планувальник за ними.
Кожен пінг: це одна подія: run, complete, fail чи skip. Job, що надсилає run і complete раз на годину, генерує близько 1 440 подій на місяць, тож 50 000 подій на плані Free покривають десятки job'ів.
API починає повертати HTTP 402, і нові пінги не приймаються до скидання місяця або оновлення плану. Нічого не видаляється; панель і ваша історія залишаються доступними весь час.
Зареєструйтеся, отримайте API-ключ, вставте curl у свій cron. Ось і все.