Cron позволяет автоматически запускать команды и скрипты в заданное время. Например, каждый день создавать резервную копию, раз в час обновлять данные или по понедельникам очищать временные файлы.

Вместо длинного описания расписание записывается в коротком виде:

30 2 * * *

Эта строка означает: запускать задачу каждый день в 02:30.

Пять полей cron

Классическое выражение состоит из пяти частей:

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

Схема:

┌──────── минута: 0–59
│ ┌────── час: 0–23
│ │ ┌──── день месяца: 1–31
│ │ │ ┌── месяц: 1–12
│ │ │ │ ┌ день недели: 0–6
│ │ │ │ │
* * * * *

Звёздочка означает «любое значение».

Полезные примеры

Каждый час

0 * * * *

Команда запускается в начале каждого часа.

Каждый день в 02:30

30 2 * * *

Подходит для ночной резервной копии.

Каждые 15 минут

*/15 * * * *

Запуск происходит в 00, 15, 30 и 45 минут каждого часа.

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

0 9 * * 1

В первый день каждого месяца

0 0 1 * *

Команда запускается в полночь первого числа.

По будням в 18:00

0 18 * * 1-5

Как добавить команду

В Linux расписание обычно редактируют командой:

crontab -e

Полная строка может выглядеть так:

30 2 * * * /usr/bin/php /var/www/site/backup.php

Лучше указывать абсолютные пути к программе и файлу. Среда cron может отличаться от обычного терминала и не всегда знает, где искать команду.

Куда записывать результат выполнения

Чтобы сохранить вывод и ошибки в файл:

30 2 * * * /usr/bin/php /var/www/site/backup.php >> /var/log/site-backup.log 2>&1

Так проще понять, почему задача не выполнилась.

Для важных процессов полезно настроить отдельное уведомление или мониторинг. Сам факт наличия строки в crontab ещё не гарантирует успешный запуск команды.

Почему расписание срабатывает не тогда

Одна из частых причин — часовой пояс.

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

  • часовой пояс сервера;
  • системное время;
  • часовой пояс приложения;
  • переходы на летнее время, если они используются в регионе.

Как проверить выражение до установки

В Cron Builder AllBlog можно собрать расписание через поля или готовые пресеты.

Инструмент:

  • объясняет выражение обычными словами;
  • показывает ближайшие запуски;
  • помогает проверить пять полей;
  • учитывает выбранный часовой пояс.

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

Важная особенность дня месяца и дня недели

Поведение этих полей может зависеть от конкретной реализации cron. В классическом Unix cron при одновременном ограничении дня месяца и дня недели задача нередко запускается, когда совпало хотя бы одно из условий.

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

Итог

Cron превращает регулярную ручную задачу в автоматическую. Для начала достаточно запомнить порядок пяти полей и несколько базовых выражений.

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