CronFlow
Напишите cron-выражение, прочтите его обычными словами, посмотрите, когда именно оно сработает в любом часовом поясе, и заберите готовую строку crontab, workflow или манифест.
Каждые 5 минут
Читаем ваши часы…
Заработает ли это там, куда вы его ставите?
Одни и те же пять полей значат разное для разных планировщиков. Вот те, что отклонят это выражение или молча истолкуют его по-своему.
Работает как написано.
Работает как написано.
- Всегда работает в UTC; выбранный выше пояс игнорируется.
- Запуски по расписанию ставятся в очередь и под нагрузкой могут начаться намного позже.
- Принимает 6/7 полей, а не 5.
- Принимает 6 полей, а не 5.
- Принимает 6 полей, а не 5.
Работает как написано.
Работает как написано.
Заберите с собой
Само выражение редко бывает результатом. Вот файл, который вы действительно вставите.
# ┌───────────── minute (0-59) # │ ┌─────────── hour (0-23) # │ │ ┌───────── day of month (1-31) # │ │ │ ┌─────── month (1-12) # │ │ │ │ ┌───── day of week (0-6, Sunday = 0) # │ │ │ │ │ */5 * * * * /usr/local/bin/my-job.sh
Как это работает
Напишите или соберите мышью
Наберите выражение или выберите минуты, часы и дни в сетке — синтаксис можно вообще не трогать.
Выберите нужный часовой пояс
Ваш crontab работает в поясе сервера, а не в вашем. Укажите его — и все времена на странице сдвинутся вместе с ним.
Прочтите и проверьте даты
Фраза на вашем языке, следующие и предыдущие запуски и календарь, который показывает форму расписания.
Заберите нужный файл
Строка crontab, блок GitHub Actions, CronJob для Kubernetes, таймер systemd, правило EventBridge и не только.
Любые пояса, включая переход на летнее время
Запуски считаются в местном времени и переводятся в момент по каждому поясу, поэтому час, который перевод стрелок добавляет или убирает, обрабатывается, а не сообщается неверно втихую.
Сетка вместо синтаксиса
Отмечайте нужные минуты, часы, дни, месяцы и дни недели. Shift+клик — диапазон. Выражение напишется само.
Календарь, а не просто список
Тепловая карта месяца и гистограмма по часам показывают форму расписания — то, чего пять отметок времени в списке никогда не расскажут.
Семь настоящих экспортов
crontab, GitHub Actions, CronJob для Kubernetes, OnCalendar для systemd, AWS EventBridge, node-cron и Spring — уже с вашей командой внутри.
Совместимость проверена
Quartz требует «?», GitHub Actions игнорирует ваш пояс, EventBridge считает воскресенье за 1. Вы узнаете об этом до выката.
Ничего не покидает вкладку
Парсер, планировщик и экспортеры работают в вашем браузере. Без API, без загрузок, без аккаунта.
CronFlow
CronFlow разбирает стандартный синтаксис crontab из 5 полей, а также Quartz из 6 и 7, семейство @daily, интервалы @every, H из Jenkins и токены L, W и #. Он возвращает выражение на вашем языке, показывает следующие и предыдущие запуски в любом часовом поясе IANA и превращает его в файл, которого ждёт ваш планировщик.
Посчитано, а не угадано
Планировщик идёт по гражданскому времени и переводит каждое совпадение в момент через собственную базу часовых поясов браузера, так что задача в 02:30 в ночь перевода стрелок показывается так, как она действительно себя поведёт.
Сделано для crontab, который вам достался
Вставьте файл с сервера — каждая строка разбирается на расписание, пользователя и команду, а затем объясняется обычными словами: сломанные помечаются, CRON_TZ подхватывается сам. Ничего не разбирается, пока вы не нажмёте кнопку.
За этой страницей нет никакого API. Парсер, поиск запусков, перевод поясов и все экспортеры — это JavaScript в вашей вкладке, поэтому crontab боевого сервера никуда не уезжает.
Часто задаваемые вопросы
QОтправляются ли мои данные на сервер?+
Нет. Парсер, поиск запусков и все экспортеры работают внутри вашего браузера. Вставленный сюда crontab не покидает вкладку.
QКакой синтаксис cron поддерживается?+
Стандартный crontab из 5 полей, 6 полей с секундами и 7 полей Quartz с годом. Диапазоны, списки, шаги и псевдонимы вида JAN или MON. Сокращения @yearly, @monthly, @weekly, @daily, @midnight и @hourly, а также интервалы @every. Из Quartz — L, LW, L-3, 15W, FRI#3 и ?, плюс токен H из Jenkins.
QЗачем инструменту часовой пояс?+
Потому что cron-задача выполняется в поясе машины, обычно UTC и почти никогда в вашем. Ошибка здесь — самая частая причина того, что расписание срабатывает в неожиданный час. Укажите пояс сервера, и все времена на странице последуют за ним.
QЧто происходит в ночь перевода стрелок?+
Запуск, местное время которого в этот день не существует, помечается, а предпросмотр показывает ближайший момент, который существует. Реальные планировщики здесь расходятся, поэтому инструмент это подсвечивает, а не делает вид, что верный ответ один.
QПочему поля дня и дня недели иногда ведут себя странно?+
Когда в обоих стоит что-то кроме звёздочки, классический cron срабатывает, если совпадает ЛЮБОЕ из них, а не оба. «0 0 1 * MON» запустится и 1-го числа, и каждый понедельник. Инструмент применяет это правило и предупреждает о нём.
QМожно ли получить фрагмент для Kubernetes или GitHub Actions?+
Да. Панель экспорта пишет строку crontab, блок schedule для GitHub Actions, CronJob для Kubernetes, таймер и сервис systemd, выражение AWS EventBridge, вызов node-cron и аннотацию @Scheduled из Spring — с вашим названием задачи и командой внутри.
QМожно ли обойтись без cron-синтаксиса?+
Да. На вкладке конструктора для каждого поля есть кликабельная сетка: выбирайте минуты, часы, дни, месяцы и дни недели, а выражение напишется за вас.