Понятное расписание для ваших задач

Генератор cron-выражений

Резервная копия ночью, синхронизация каждые пять минут, отчёт по понедельникам — задайте расписание и получите строку для crontab. Перед настройкой сервера проверьте ближайшие запуски в UTC.

CRON-ВЫРАЖЕНИЕСтандарт Linux · 5 полей
*/5Минута
*Час
*День
*Месяц
*День нед.

Каждые 5 минут / UTC

01

Настройка расписания

Изменения сразу видны
Шаг
Все значения *
Все значения *
Все значения *
Все значения *

Шаг отсчитывается внутри каждого поля. Если ограничены день месяца и день недели, достаточно одного совпадения.

Расчёты выполняются в вашем браузере.Без регистрации и отправки данных.

Готовые примеры расписаний cron

*/5 * * * *

Каждые пять минут

30 2 * * *

Ежедневно в 02:30

0 9 * * 1

По понедельникам в 09:00

Как составить расписание crontab

Cron-выражение задаёт время запуска регулярной задачи. В пользовательском crontab Linux после пяти полей времени записывают команду. Само выражение определяет только расписание: оно не содержит путь к скрипту и не создаёт задание на сервере.

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

От нужной периодичности к cron-выражению

  1. Выберите шаблон или настройте каждое из пяти полей.
  2. Для нескольких значений используйте список, для последовательных — диапазон.
  3. Готовую строку можно проверить в редакторе: вставьте только расписание, без команды.
  4. Сверьте даты в UTC с часовым поясом сервера и скопируйте результат.

Синтаксис cron: пять полей по порядку

Поля разделяются пробелами: минута, час, день месяца, месяц, день недели. Воскресенье обозначается 0 или 7. Для месяцев и дней недели разрешены JAN–DEC и SUN–SAT; русские сокращения в выражении не используются.

ПолеДиапазон
Минута059
Час023
День месяца131
Месяц112
День недели07
  • * — все значения поля.
  • , — отдельные значения, например 0,30.
  • - — диапазон с включёнными границами, например 1-5.
  • / — шаг внутри поля, например */15.

Примеры cron: каждые пять минут, ежедневно, раз в месяц

Указанные часы относятся к часовому поясу планировщика. Расписание с понедельника по пятницу не учитывает праздники и переносы рабочих дней: при необходимости их проверяют в коде задачи.

ВыражениеРасписание
*/5 * * * *Каждые пять минут
30 2 * * *Ежедневно в 02:30
0 9 * * 1По понедельникам в 09:00
0 9 * * 1-5С понедельника по пятницу в 09:00
0 0 1 * *Первого числа каждого месяца
0 0 29 2 *29 февраля в високосные годы

Добавление задания на Linux-сервер

Команда crontab -e открывает задания текущего пользователя. В примере ниже скрипт резервного копирования запускается ежедневно в 02:30 по часовому поясу, настроенному для cron.

Указывайте абсолютный путь, проверьте права на запуск и состояние службы cron. Окружение задания может отличаться от интерактивного терминала, поэтому успешный ручной запуск ещё не подтверждает работу по расписанию.

30 2 * * * /usr/local/bin/backup.sh

Частые вопросы о cron-выражениях

Время показано по Москве?

Нет, все даты предпросмотра приведены в UTC. В cron-выражении нет часового пояса: его задаёт планировщик. Сверьте настройки сервера, прежде чем переносить расписание в crontab.

Что означает */5 в поле минут?

Запуск на минутах 0, 5, 10 и далее в каждом часе. Отсчёт не начинается с момента сохранения задания. Шаг применяется внутри поля, а не к прошедшему времени.

Как сочетаются день месяца и день недели?

Если ограничены оба поля, достаточно совпадения одного. Выражение 0 9 1 * MON соответствует первому числу месяца или понедельнику в 09:00. Если одно из полей начинается с *, требуется выполнение обоих условий дня.

Поддерживаются ли Quartz и секунды?

Нет, здесь используется формат Linux из пяти полей. Секунды, ?, L, W, # и @reboot не поддерживаются. Сокращения @hourly, @daily, @weekly, @monthly и @yearly преобразуются в обычное выражение.

Почему нет пяти ближайших запусков?

Поиск ограничен восемью годами. Для несуществующего 31 февраля дат не будет, а 29 февраля может встретиться меньше пяти раз. Синтаксически допустимая запись не обязательно соответствует реальной дате.

Официальная документация crontab проекта Cronie (на английском)