Cron-выражения простыми словами
Введите или вставьте cron-выражение: здесь будет его расшифровка и ближайшие запуски в вашем часовом поясе. Выражение читается так же, как его читает Heartcron.
Каждые 5 минут.
Ближайшие запуски
Что значит каждое поле
| Поле | Значение | Что значит |
|---|---|---|
| Минута | */5 | каждую 5-ю минуту |
| Час | * | каждый час |
| День месяца | * | каждый день |
| Месяц | * | каждый месяц |
| День недели | * | любой день недели |
Узнайте, когда задача не запустилась
Cron не сообщает, если задача не стартовала или упала на середине. Добавьте пинг в конец строки: если Heartcron не получит его по расписанию, вы получите алерт в Telegram, Slack, Discord или на почту.
*/5 * * * * /path/to/job.sh && curl -fsS -m 10 --retry 3 https://ping.heartcron.com/<check-id> > /dev/null
Синтаксис cron
┌───────────── минута (0–59)
│ ┌─────────── час (0–23)
│ │ ┌───────── день месяца (1–31)
│ │ │ ┌─────── месяц (1–12)
│ │ │ │ ┌───── день недели (0–6)
│ │ │ │ │
* * * * *
| Символ | Что значит | Пример |
|---|---|---|
* | Любое значение | * * * * * |
, | Список значений | 0 8,20 * * * |
- | Диапазон значений | 0 9 * * 1-5 |
/ | Шаг: каждое N-е значение | */15 * * * * |
@daily | Сокращение для частого расписания | @hourly, @weekly, @monthly, @yearly |
Месяцы можно писать как JAN–DEC, дни недели — как SUN–SAT. Воскресенье — это 0.
Вопросы
В каком часовом поясе работает cron?
Системный cron работает в часовом поясе сервера, часто это UTC. Проверить можно командой date. В Heartcron пояс задаётся для каждой проверки, так что 0 3 * * * может означать 3 часа ночи по Москве.
Что будет, если заданы и день месяца, и день недели?
Задача запустится, когда совпадёт любое из них, а не оба сразу. 0 0 1 * 1 запускается 1-го числа каждого месяца и каждый понедельник.
Как запускать задачу каждые 90 минут?
Одним выражением не получится: шаг сбрасывается каждый час. Используйте две строки: 0 0-21/3 * * * и 30 1-22/3 * * *.
Как узнать, что cron-задача действительно выполнилась?
Добавьте в конец задачи запрос на адрес мониторинга. Heartcron ждёт его по расписанию и присылает алерт, если запрос опоздал или задача сообщила об ошибке.
Частые расписания
- каждую минуту
* * * * * - каждые 2 минуты
*/2 * * * * - каждые 5 минут
*/5 * * * * - каждые 10 минут
*/10 * * * * - каждые 15 минут
*/15 * * * * - каждые 30 минут
*/30 * * * * - каждый час
0 * * * * - каждые 2 часа
0 */2 * * * - каждые 3 часа
0 */3 * * * - каждые 6 часов
0 */6 * * * - каждые 12 часов
0 */12 * * * - каждый день в полночь
0 0 * * * - каждый день в 3 часа ночи
0 3 * * * - два раза в день
0 0,12 * * * - по будням в 9 утра
0 9 * * 1-5 - каждый понедельник
0 9 * * 1 - каждую неделю
0 0 * * 0 - каждый месяц
0 0 1 * * - раз в квартал
0 0 1 */3 * - раз в год
0 0 1 1 *