Cron: что это такое и как настроить планировщик задач
В мире веб-разработки мы неизбежно сталкиваемся с необходимостью автоматизации рутинных задач. Представьте: ваш сайт работает круглосуточно, но кто-то должен регулярно создавать резервные копии базы данных, очищать временные файлы или отправлять еженедельные отчеты. Неужели разработчик должен каждую ночь просыпаться для запуска скриптов?

Именно здесь на сцену выходит cron — системный планировщик задач Unix-подобных операционных систем. Этот фоновый процесс (демон) автоматически выполняет заданные команды в определенное время или через установленные интервалы. Задачи, выполняемые через cron, называются cron jobs.
Основные сферы применения cron включают создание резервных копий данных, автоматическую рассылку уведомлений, очистку кэша и логов, мониторинг системных ресурсов. Фактически, любая повторяющаяся задача может быть автоматизирована с помощью этого инструмента.
- Что такое cron и cron jobs
- Как устроен crontab
- Cron в панели управления хостингом (пример на Timeweb)
- Настройка cron через SSH
- Нюансы и частные случаи
- Заключение
- Рекомендуем посмотреть курсы по системному администрированию
Что такое cron и cron jobs
Cron представляет собой системный демон — фоновый процесс, который постоянно работает в операционной системе и отслеживает расписание выполнения задач. Название происходит от греческого слова «chronos» (время), что весьма символично отражает его назначение.

Иллюстрация показывает, как «демон cron» берёт на себя рутинные задачи — резервное копирование, очистку логов, рассылку, пока разработчик спокойно спит. Это подчёркивает главную ценность cron — автоматизацию без участия человека.
Cron jobs — это индивидуальные задания, которые планировщик выполняет согласно заданному расписанию. Каждая такая задача представляет собой команду или скрипт, который должен запускаться автоматически без вмешательства пользователя.
Сравнивая cron с ручным запуском задач, мы видим очевидные преимущества. Во-первых, это надежность — система не забудет выполнить важную операцию. Во-вторых, удобство — нет необходимости помнить о регулярных задачах и тратить на них время. В-третьих, точность — задачи выполняются строго по расписанию, независимо от человеческого фактора.
Рассмотрим типичные сценарии применения cron:
Резервное копирование — автоматическое создание бэкапов баз данных и файлов сайта каждую ночь или несколько раз в день.
Мониторинг дискового пространства — регулярная проверка свободного места и отправка предупреждений при критическом заполнении.
Очистка логов — автоматическое удаление устаревших файлов журналов для экономии дискового пространства.
Запуск email-рассылок — отправка регулярных newsletter’ов, уведомлений или отчетов подписчикам.
Важно понимать, что cron не просто удобство — это фундаментальный инструмент для поддержания стабильной работы веб-приложений и серверной инфраструктуры.
Как устроен crontab
Основой работы cron является файл crontab (сокращение от «cron table» — таблица cron). Этот файл представляет собой текстовый документ, содержащий расписание задач в специальном формате. Важная особенность: каждый пользователь системы имеет свой индивидуальный файл crontab, что обеспечивает изоляцию задач и прав доступа.
Каждая строка в crontab описывает отдельную задачу и следует единому формату:
* * * * * команда
Эти пять звездочек — не просто символы-заполнители. Каждая позиция имеет строго определенное значение:
- Минуты (0-59) — в какую минуту часа выполнить задачу.
- Часы (0-23) — в какой час суток запустить команду.
- День месяца (1-31) — в какой день месяца выполнить задание.
- Месяц (1-12) — в каком месяце года запустить задачу.
- День недели (0-7, где 0 и 7 — воскресенье) — в какой день недели выполнить команду.
Система использует несколько специальных символов для создания гибких расписаний:
Звездочка (*) означает «любое значение» — если поставить её в поле часов, задача будет выполняться каждый час.
Запятая (,) разделяет несколько конкретных значений. Например, «1,15,30» в поле минут означает выполнение в 1-ю, 15-ю и 30-ю минуты.
Дефис (-) указывает диапазон. Запись «9-17» в поле часов означает выполнение каждый час с 9:00 до 17:00.
Косая черта (/) задает интервал повторения. Конструкция «*/15» в поле минут означает «каждые 15 минут».

Круговая диаграмма показывает пять обязательных полей в crontab: минуты, часы, дни месяца, месяцы и дни недели. Такая схема помогает запомнить структуру расписания и понять, как задаются параметры задачи.
Рассмотрим практические примеры:
30 2 * * * — выполнение каждый день в 2:30 утра.
0 */6 * * * — запуск каждые 6 часов.
0 9 * * 1-5 — выполнение в 9:00 утра с понедельника по пятницу.
*/10 * * * * — выполнение каждые 10 минут.
Понимание этого формата — ключ к эффективному использованию cron для автоматизации ваших задач.
Cron в панели управления хостингом (пример на Timeweb)
Современные хостинг-провайдеры понимают, что не все пользователи готовы погружаться в тонкости командной строки. Поэтому многие предлагают удобные веб-интерфейсы для работы с cron. Рассмотрим этот процесс на примере панели управления Timeweb — один из наиболее интуитивных интерфейсов на рынке.

Интерфейс crontab в панели Timeweb действительно дружелюбен к новичкам. Даже пользователи, которые никогда не работали с планировщиками задач, быстро разберутся в создании автоматических процессов.
При создании новой задачи система предлагает заполнить несколько ключевых полей:
Название задачи — произвольное имя, которое поможет вам ориентироваться среди множества заданий. Рекомендуем использовать описательные названия вроде «Ежедневный бэкап БД» или «Очистка временных файлов».
Тип файла и путь — критически важный параметр. Здесь нужно выбрать, что именно будет выполняться: PHP-скрипт, исполняемый файл или HTTP-запрос. Обратите внимание на нюанс: если ваш скрипт использует переменные веб-сервера (например, $_SERVER), запуск через PHP-интерпретатор может привести к ошибкам. В таких случаях следует выбирать тип «HTTP-запрос» и указывать полный URL: ваш_сайт.ru/scripts/backup.php?mode=full¬ify=1.
Периодичность запуска представлена двумя вариантами. Для стандартных интервалов (ежедневно, еженедельно, ежемесячно) можно использовать готовые шаблоны. Если требуется более сложное расписание, активируйте продвинутые настройки — здесь доступен тот же формат crontab, но с подписанными полями для удобства.
Полезная функция — настройка email-уведомлений. Укажите адрес администратора, и система будет присылать сообщения о результатах выполнения задач. Это особенно важно для критически важных операций вроде резервного копирования.
Типовые задачи, которые легко настроить через панель:
- Автоматическое создание бэкапов сайта и баз данных.
- Регулярная отправка newsletter’ов подписчикам.
- Очистка кэша CMS для оптимизации производительности.
- Генерация и отправка аналитических отчетов.
Главное преимущество веб-интерфейса — минимальный риск синтаксических ошибок и наглядность настроек.
Настройка cron через SSH
Для опытных пользователей и системных администраторов настройка cron через SSH остается предпочтительным методом. Этот подход предоставляет максимальную гибкость и контроль над планировщиком задач, хотя требует определенных знаний командной строки.
Первый шаг — подключение к серверу по протоколу SSH. После установления соединения работа с cron осуществляется через набор специальных команд. Основная из них — crontab -e для редактирования файла задач текущего пользователя. Дополнительно доступны команды crontab -l (просмотр существующих задач) и crontab -r (полное удаление всех заданий).
При первом запуске crontab -e система предложит выбрать текстовый редактор. Новичкам рекомендуем nano — он наиболее прост в использовании. Если случайно выберете vi или vim, не паникуйте: нажмите Esc, введите :q и нажмите Enter для выхода. Затем используйте команду select-editor для смены редактора на nano.
Рассмотрим пошаговый пример добавления задачи. Допустим, нужно настроить ежедневное резервное копирование в 3:00 утра:
- Выполните crontab -e
- В открывшемся редакторе добавьте строку:
0 3 * * * /opt/php56/bin/php /home/c/cc123456/public_html/backup.php
- Сохраните файл (Ctrl+O в nano) и выйдите (Ctrl+X)
Важный нюанс — указание корректного интерпретатора. На серверах Timeweb по умолчанию установлена PHP 5.3, но современные скрипты часто требуют более новых версий. Доступные варианты:
- /opt/php53/bin/php — PHP 5.3.
- /opt/php56/bin/php — PHP 5.6.
- /opt/php70/bin/php — PHP 7.0.
- /opt/php71/bin/php — PHP 7.1.
- Критическое предупреждение: записи, созданные через SSH, будут полностью удалены при любом изменении в веб-панели управления! Это связано с тем, что панель перезаписывает весь файл crontab. Поэтому выбирайте один способ управления и придерживайтесь его.
Примеры полезных cron-строк с разбором:
*/15 * * * * /usr/bin/curl -s http://yoursite.com/health-check.php
Проверка работоспособности сайта каждые 15 минут
30 1 * * 0 /opt/php71/bin/php /home/user/scripts/weekly-report.php
Генерация еженедельного отчета каждое воскресенье в 1:30
0 */2 * * * /bin/find /tmp -name "*.log" -mtime +7 -delete
Удаление логов старше 7 дней каждые 2 часа
SSH-подход незаменим для сложных задач, требующих точной настройки окружения или интеграции с системными утилитами.
Нюансы и частные случаи
Работа с cron кажется простой на первый взгляд, но на практике мы сталкиваемся с рядом подводных камней, которые могут существенно осложнить автоматизацию задач. Рассмотрим ключевые нюансы, с которыми сталкиваются разработчики.
Проверка доступности cron. Планировщик функционирует только при активном оплаченном аккаунте без ограничений. Чтобы проверить статус доступа, создайте PHP-файл с содержимым <?php echo exec(‘id’); ?> и откройте его в браузере. Вывод uid=12345(login) gid=600(customers) groups=600(customers) указывает на полную доступность cron. Если видите группу spammers в выводе — обратитесь в техническую поддержку.
Права доступа к файлам. По умолчанию файлы создаются с правами 600 (чтение/запись только для владельца). Для корректной работы cron файлы должны иметь права на чтение и исполнение. Измените права командой chmod 744 filename.php или через файловый менеджер хостинга.
Управление логированием. Частая ошибка новичков — захламление почты сообщениями от cron. Для часто выполняемых скриптов настройте запись логов в файл вместо вывода в консоль:
*/5 * * * * /opt/php56/bin/php /path/to/script.php >> /var/log/custom.log 2>&1
Запуск чаще минуты. Минимальный интервал cron — одна минута. Для более частого выполнения используйте команду sleep:
* * * * * /opt/php56/bin/php /path/to/script.php; /bin/sleep 30; /opt/php56/bin/php /path/to/script.php

Линейный график сравнивает стандартный cron (1 запуск в минуту) и cron с использованием sleep 30 (2 запуска в минуту). На диаграмме видно, как можно обойти ограничение на минимальный интервал.
Эта конструкция запустит скрипт дважды: в начале минуты и через 30 секунд.
Защита от двойного запуска. Серьезная проблема возникает, когда предыдущий запуск скрипта еще не завершился, а cron уже пытается запустить новый экземпляр. Простое решение с lock-файлами может дать сбой на хостинге из-за ограничений по нагрузке — если процесс принудительно завершится, lock-файл останется, блокируя дальнейшие запуски.
Элегантное решение — использование bash-скрипта с утилитой flock:
#!/bin/bash command=$@ no_spaces=`echo $command | sed -e 's/\s/_/g' -e 's|/|_|g'` pidfile=/var/tmp/$no_spaces.pid lockfile=/var/tmp/$no_spaces.lock if [[ -e $pidfile ]] then pid=`cat $pidfile 2>/dev/null` ps h $pid >/dev/null 2>/dev/null if [[ $? -eq 0 ]] then exit 1 else rm $lockfile fi fi echo $$ > $pidfile /usr/bin/flock -w 0 $lockfile $command rm $pidfile
Этот скрипт проверяет активность процесса и автоматически очищает «мертвые» блокировки, обеспечивая надежную защиту от конфликтов.
Заключение
Cron представляет собой мощный инструмент автоматизации, который превращает рутинные серверные задачи в прозрачные фоновые процессы. Мы рассмотрели два основных подхода к его настройке: через интуитивно понятную веб-панель управления и более гибкий SSH-интерфейс. Каждый метод имеет свои преимущества — панель идеальна для начинающих пользователей, а командная строка предоставляет максимальный контроль опытным администраторам. Подведем итоги:
- Cron — это системный планировщик задач. Он автоматизирует выполнение команд и скриптов по расписанию.
- Crontab — основной инструмент управления cron. Он задаёт расписания через удобный формат из пяти полей.
- Cron поддерживает разные способы настройки. Это может быть веб-панель хостинга или работа через SSH.
- Автоматизация через cron экономит время. Она снимает с разработчика рутину резервного копирования, очистки логов и рассылок.
- Есть важные нюансы при работе с cron. Необходимо учитывать права доступа, логирование и защиту от конфликтных запусков.
Рекомендуем обратить внимание на подборку курсов по системному администрированию. Если вы только начинаете осваивать профессию администратора, такие программы помогут быстрее освоить cron и другие инструменты: в них есть теоретическая и практическая часть.
Рекомендуем посмотреть курсы по системному администрированию
Курс | Школа | Цена | Рассрочка | Длительность | Дата начала | Ссылка на курс |
---|---|---|---|---|---|---|
Администрирование MS Windows Server
|
Merion Academy
5 отзывов
|
Цена
8 100 ₽
13 500 ₽
|
От
675 ₽/мес
Рассрочка на 12 месяцев
|
Длительность
1 месяц
|
Старт
1 октября
|
Ссылка на курс |
Инженер по автоматизации
|
Нетология
43 отзыва
|
Цена
с промокодом kursy-online
96 100 ₽
168 666 ₽
|
От
2 811 ₽/мес
Без переплат на 2 года.
|
Длительность
13 месяцев
|
Старт
5 ноября
|
Ссылка на курс |
DevOps-инженер
|
Eduson Academy
74 отзыва
|
Цена
Ещё -5% по промокоду
115 000 ₽
|
От
9 583 ₽/мес
0% на 24 месяца
14 880 ₽/мес
|
Длительность
7.5 месяцев
|
Старт
18 ноября
Пн, Ср, 19:00-22:00 по МСК
|
Ссылка на курс |
DevOps для эксплуатации и разработки
|
Яндекс Практикум
95 отзывов
|
Цена
156 500 ₽
|
От
23 000 ₽/мес
|
Длительность
6 месяцев
Можно взять академический отпуск
|
Старт
9 октября
|
Ссылка на курс |

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

Что такое чат-бот: простыми словами
Разберёмся, как создать чат бот с нуля: какие инструменты подойдут новичкам, как спланировать сценарий и запустить первую версию без кода и бюджета.

Нейросеть для дизайна интерьера: обзор лучших AI-инструментов
Какая нейросеть для создания дизайна интерьера действительно работает, а какая просто обещает? В этом обзоре — честный разбор, сравнение и советы

Классика и технологии: как работают 12 принципов анимации
Почему 12 принципов Disney остаются ключевыми в эпоху цифровой анимации? Узнайте, как эти правила помогают создавать реалистичные движения в любом проекте.