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 превращает регулярную ручную задачу в автоматическую. Для начала достаточно запомнить порядок пяти полей и несколько базовых выражений.
Перед установкой проверьте ближайшие даты запуска, часовой пояс и абсолютные пути к командам — именно эти мелочи чаще всего становятся причиной ошибок.
Комментарии 0
Есть мысль, дополнение или вопрос? Пиши.
Оставь первый комментарий и начни обсуждение.