STEADRUN

Cron-выражение: разбор и ближайшие запуски

Впишите выражение из crontab, и Steadrun покажет, когда оно сработает. Расписание считается так же, как в проверках Steadrun.

Генератор: собрать выражение из расписания
Дни недели

Выражение появится в поле выше вместе с разбором и ближайшими запусками.

1-го числа, в январе, в 00:00.

0
минута
0
час
1
день месяца
1
месяц
*
день недели

Ближайшие запуски

Часовой пояс Europe/Moscow

  1. пт, 1 января 2027, 00:00
  2. сб, 1 января 2028, 00:00
  3. пн, 1 января 2029, 00:00
  4. вт, 1 января 2030, 00:00
  5. ср, 1 января 2031, 00:00

Строка для crontab

0 0 1 1 * /path/to/script.sh && curl -fsS -m 10 --retry 3 -o /dev/null https://steadrun.ru/ping/ВАШ-UUID

curl в конце сообщает Steadrun, что задача отработала. Если пинга не будет к сроку, придёт алерт на почту, в Telegram или на вебхук.

Cron не скажет, что задача не запустилась

Steadrun ждёт пинг по этому расписанию и пишет Вам, когда задача молчит или падает. На бесплатном тарифе можно завести до 5 проверок.

Следить за этой задачей в Steadrun

В других планировщиках

То же расписание в часовом поясе Europe/Moscow.

Laravel Scheduler

Schedule::command('app:task')->cron('0 0 1 1 *')->timezone('Europe/Moscow');

Пакет Steadrun для Laravel

systemd timer

[Timer]
OnCalendar=*-01-01 00:00:00 Europe/Moscow

# Проверить на сервере: systemd-analyze calendar "*-01-01 00:00:00 Europe/Moscow"

Руководство: systemd timer вместо cron

Kubernetes CronJob

spec:
  schedule: "0 0 1 1 *"
  timeZone: "Europe/Moscow"

Поле timeZone работает с Kubernetes 1.27. Без него время считается по часовому поясу kube-controller-manager. Пинг из CronJob

GitHub Actions

on:
  schedule:
    - cron: '0 0 1 1 *'
      timezone: 'Europe/Moscow'

В часы нагрузки на GitHub запуск может опоздать. Без timezone время считается в UTC. Пинг из GitHub Actions

Примеры расписаний

Как читать cron-выражение

Пять полей через пробел: минута (0–59), час (0–23), день месяца (1–31), месяц (1–12) и день недели (0–7, воскресенье — 0 или 7). Cron запускает задачу, когда текущее время совпадает со всеми полями.

Время берётся из часового пояса сервера, а не Вашего компьютера. Если сервер живёт в UTC, а Вам нужно 03:00 по Москве, ставьте 0 0 * * * или выберите здесь пояс сервера и сверьте запуски.

Что означает каждое поле, специальные строки вроде @daily и частые ошибки описаны в руководстве «Crontab и расписание cron».