Блог / Статьи

Полезная информация для вашего хостинга

Что такое планировщик CRON и как его правильно настроить?

CRON - это инструмент для автоматизации задач на сервере Linux. Он позволяет запускать программы или скрипты в определенное время и с заданной периодичностью, заранее задаваемой пользователем.

Настройка CRON

Для настройки CRON задачи, вам нужно создать строки, которые указывают, когда и что выполнять. Каждая задача - это отдельная строка. Например:

30 3 * * 2 /yourdirectory/myscript.pl
В этом примере:

30 - минуты
3 - часы
* - день месяца (звездочка означает "каждый")
* - месяц
2 - день недели (в данном случае, вторник)


/yourdirectory/myscript.pl - команда, которую нужно выполнить


Если вы хотите, чтобы задача выполнялась в разные дни или часы, вы можете перечислить значения через запятую (например, 2,4,6 для вторника, четверга и субботы). Можно также указать интервал через дефис, например, 3-7 для запуска каждый час с 3 до 7 утра.

Важно помнить, что символ * обозначает "каждый возможный вариант", поэтому * * * * 1 /yourdirectory/myscript.pl означает, что задача будет выполняться каждую минуту, а не только по понедельникам.

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

Установка CRON задач

Самый простой способ работать с CRON - это использовать панель администрирования хостинга, если она предоставляет такую функциональность. Однако, разные хостинг-панели имеют разные способы настройки CRON.

Если хостинг не предоставляет интерфейс для работы с CRON, вы можете использовать SSH-подключение к серверу с помощью программы PuTTY и вводить задачи в командной строке.

Для начала работы, выполните команду:

crontab -e
Вы попадете в текстовый редактор, например, vi. Если вы не знакомы с vi, вы можете использовать более простой редактор, например:

EDITOR=ee crontab -e
После этого, вы можете добавить задачи в соответствии с форматом CRON. Если хостинг не поддерживает редактор, вы должны научиться работать с vi. Напоминаем не забывать сохранять изменения и перезапускать CRON для применения задач.

Вы также можете просмотреть уже существующие задачи с помощью команды crontab -l.

CRON - мощный инструмент для автоматизации задач на сервере, но требует аккуратности при настройке.

Примеры задач для Cron в Linux

Исполнение задания каждые 6 часов в 30 минут каждого дня каждого месяца:

30 */6 * * * /yourdirectory/myscript.pl
Исполнение задания после каждой перезагрузки:

@reboot /yourdirectory/myscript.pl
Исполнение задания 15 числа каждого месяца в 00 часов 00 минут:

0 0 15 * * /yourdirectory/myscript.pl
Запуск PHP-файлов через Cron:

Чтобы запустить PHP-скрипты, часто используется интерпретатор. Однако, разные хостинг-провайдеры могут иметь разные способы настройки. В случаях, когда это неясно, можно воспользоваться утилитой wget для выполнения PHP-скрипта в Cron:

1 2 * * 3 wget -O - -q -t 1 
Здесь:

-O - - предотвращает создание дополнительных файлов, экономя место на сервере, так как операция выполняется в консоли.
-q - отключает вывод результатов операции на экран.
-t 1 - разрешает только одну попытку соединения.


Ограничения Cron:

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

Если сервер перезагружается, Cron сохраняет задачи и продолжит выполнение после перезагрузки.

003

Отчетность:

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

Теперь, если произойдет ошибка во время выполнения задачи, вы получите уведомление. Чтобы отключить уведомления, можно добавить > /dev/null 2>&1 в конец задачи.