vasilenko.info

Разбор cron-выражений

/tool/cron-parser/ работает считает браузер

Вставьте строку расписания — инструмент скажет по-русски, когда задание сработает, и покажет ближайшие запуски сразу в двух колонках: по часам сервера в выбранном поясе и по вашим. Понимает пять полей Unix, шесть-семь полей Quartz и Spring вместе со знаками L, W и решёткой. Строку можно не писать руками — рядом конструктор и полсотни готовых расписаний, а на выходе есть готовые куски для crontab, Kubernetes, GitHub Actions, systemd и AWS EventBridge. Всё считает браузер.

промоДвадцать лет заметок про сайтыКак это делали в 2008-м и что из этого работает сейчас.Открыть

Строка расписания

Разбор идёт на вашем устройстве: ни строка, ни команды никуда не отправляются.

Диалект

В Quartz и Spring первое поле — секунды, а знаки L, W и решётка разбираются как расширения. Нумерация дней недели у них разная: в Quartz воскресенье — единица, в Unix и Spring — ноль.

Cron живёт по часам той машины, на которой стоит. Выберите её пояс — запуски пересчитаются, а рядом останется ваше местное время, чтобы разницу не считать в уме.

Звёздочка, диапазоны, списки, шаг после косой черты, английские сокращения месяцев и дней, псевдонимы вида @daily. В Quartz и Spring — ещё L, W и решётка.

Когда сработает

Готово Unix

Ближайшие запуски
На сервере У вас
    Следующий запуск
    Через сколько
    Запусков в сутки срабатывания
    Дней срабатывания за 12 месяцев
    Запусков за 12 месяцев

    Часовой пояс сервера браузеру неизвестен, поэтому в поле сначала подставлен ваш собственный — поменяйте его на серверный, и все даты пересчитаются. Ничего никуда не отправляется: считает браузер.

    Разбор по полям

    Что стоит в каждом поле, во что оно развернулось и сколько значений получилось.

    Поле, исходная запись, список значений и их количество
    Поле Записано Значения Сколько

    Перевод часов

    Карта запусков на месяц

    Число в клетке — сколько раз задание сработает в этот день по часам сервера. Пустая клетка означает, что в этот день запуска нет.

    Пять недель вперёд
    Пн Вт Ср Чт Пт Сб Вс За неделю

    Конструктор и готовые расписания

    Возьмите готовое или соберите своё мышью. Строка сразу уходит в поле наверху и разбирается тем же кодом — придумывать её в голове не нужно.

    Чаще раза в час

    Раз в час и по часам

    Раз в сутки

    Раз в неделю

    Раз в месяц и реже

    Минуты
    Часы
    День месяца
    Месяц
    День недели

    Готовые конфиги

    То же расписание для тех мест, куда его обычно переносят руками. Пересчёт в UTC там, где часовой пояс задать нельзя, уже сделан.

    Подставляется в строку crontab, в контейнер Kubernetes, в шаг GitHub Actions и в юнит systemd. На разбор расписания не влияет.

    crontab строка для crontab -e
    cronjob.yaml Kubernetes CronJob
    .github/workflows/cron.yml GitHub Actions, всегда UTC
    systemd таймер и юнит
    AWS EventBridge выражение расписания

    Целый crontab

    Вставьте файл как есть — с комментариями, переменными и командами. Каждая строка получит фразу по-русски и ближайший запуск, а строки, которые стартуют одновременно, будут помечены.

    Строки с решёткой и присвоения вида PATH=… пропускаются. Псевдонимы @daily и им подобные разбираются наравне с обычными.

    Пусто

    Строка за строкой: расписание, команда, что оно значит и когда сработает ближайший раз
    Стр. Расписание Команда Что значит Ближайший
    промоПосчитайте заодно ROIОкупаемость кампании по расходу и доходу.Открыть

    Как пользоваться

    1. Сначала поставьте часовой пояс сервера — тот, на котором стоит cron. Всё остальное считается по нему, а ваше местное время идёт рядом второй колонкой: разницу больше не надо держать в голове.

    2. Вставьте строку расписания без команды. Если строку писать не хочется, возьмите готовую из раздела «Конструктор» или соберите по полям переключателями.

    3. Проверьте фразу по-русски и список запусков. Список — главное: он показывает не то, что вы имели в виду, а то, что действительно получилось.

    4. Загляните в разбор по полям: там видно, во что развернулась каждая запись и сколько значений в ней осталось. Ошибка в шаге или диапазоне видна именно там.

    5. Посмотрите карту на месяц. Провал вроде «31-го числа в апреле запуска нет» виден клеткой без числа раньше, чем вы дочитаете предупреждения.

    6. Если в поясе бывает перевод часов, прочитайте отдельный блок: там сказано, какой запуск в этом году пропадёт весной и какой час повторится осенью.

    7. Готовое забирайте кусками: строка crontab, CronJob для Kubernetes, workflow для GitHub Actions (там время уже пересчитано в UTC), таймер systemd и выражение AWS EventBridge. Всё вместе скачивается одним файлом.

    8. Целый crontab вставляется в последний раздел: он разберёт каждую строку и покажет, какие задания стартуют в одну и ту же минуту.

    промоСписок задач в браузереБез аккаунта, всё хранится на вашем устройстве.Открыть

    Формула и что в неё входит

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

    Поля соединяются по «и»: сработать должны все сразу. Исключение одно — день месяца и день недели. В обычном cron и в Spring, если задано и то и другое, они соединяются по «или», и задание сработает в любой из этих дней. Quartz так не умеет и требует, чтобы одно из двух полей было знаком вопроса.

    Разбор примера: */15 9-18 * * 1-5 в поясе Europe/Moscow

    Исходные данные — те же, что стоят в полях по умолчанию: их можно пересчитать в уме и убедиться, что инструмент не врёт.

    1. В каждом часе четыре запуска: 60 ÷ 15 = 4.

    2. Часов в диапазоне с 9 до 18 включительно — десять.

    3. В сутки срабатывания: 4 × 10 = 40 запусков.

    4. Будних дней в окне на 12 месяцев около 260: это 52 недели с хвостом, по 5 будних в каждой.

    5. Если вы сидите в Екатеринбурге, во второй колонке те же запуски идут с 11 до 20 часов — на два часа позже, потому что сервер живёт по Москве.

    6. В GitHub Actions это же расписание пришлось бы записать как 6-15 вместо 9-18: там время всегда UTC. Пересчёт лежит готовым в разделе конфигов.

    Получается 40 запусков в сутки и порядка 10 400 за год. Фраза по-русски: по будням каждые 15 минут с 9 до 18 часов.

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

    промоВесь каталог инструментовСорок четыре штуки, все считают в браузере.Открыть

    Смежные инструменты

    6

    Генератор паролей

    Делает пароли нужной длины и оценивает, насколько их сложно подобрать.

    Открыть

    URL-кодирование

    Экранирует адреса и параметры и разбирает их обратно.

    Открыть

    Хеши MD5 и SHA

    Считает MD5, SHA-1, SHA-256 и SHA-512 от строки или файла.

    Открыть