Как настроить запланированную задачу Cron
Планировщик задач Cron — система для автоматического запуска программ и скриптов на сервере в определённое время. Рекомендуем настраивать запуск выполнения скриптов в вечернее время или ночью, когда нагрузка на сервере будет значительно ниже.
Как настроить выполнение скрипта в определенное время?
DirectAdmin
- Перейдите в личном кабинете в раздел “Хостинг – Мой хостинг” и нажмите “Открыть Direct Admin”;
- В новом окне откроется Direct Admin. Перейдите в раздел “Доп. возможности — Планировщик задач”;
- Нажмите на кнопку “Создать Cron Задачу”;
- В открывшемся окне укажите следующую информацию:
- Минута — любое целое число от 0 до 59;
- Час -любое целое от 0 до 23;
- День месяца — любое целое от 1 до 31 (день должен быть корректным, если указан месяц);
- Месяц — любое целое от 1 до 12;
- День недели — любое целое от 0 до 7, где 0 или 7 означает Воскресенье;
- command — команда, которая должны быть выполнена. Команда должна содержать путь к обработчику этой команды и путь к скрипту, который будет выполняться этим обработчиком;
- Кнопка “Не отправлять на E-Mail” добавит в конец указанной команды “>/dev/null 2>&1” и планировщик не будет высылать результат выполнения этой команды на ваш email;
- После указания всей необходимой информации нажмите на кнопку “Создать”. Готово.
Адрес исполняемого файла укажите в таком формате:
/usr/bin/php -f /home/логин/domains/имя_домена/public_html/скрипт.php
Пример команды запуска через wget утилиту:
/usr/bin/wget -t 1 -O - 'http://имя_домена/скрипт.php'
В разделе “Планировщик задач” также есть ссылка “Отправлять все результаты запуска Cron на E-Mail”. Этот функционал позволяет планировщику отправлять отчет о выполнении каждой задачи (как успешный, так и неуспешный, что позволит отследить ошибки выполнения). Нажмите на эту ссылку и укажите email в формате manager@domain.com. После сохранения почтового адреса планировщик станет отправлять на него отчеты о выполнении задач (кроме тех задач, в конце которых указана команда “>/dev/null 2>&1”).
cPanel
- Перейдите в личном кабинете в меню «Хостинг – Мой хостинг» и нажмите «Открыть cPanel»;
- В новом окне откроется cPanel. Перейдите в раздел “Расширенный — Запланированные задания”;
- В открывшемся окне, если есть необходимость, введите адрес в поле “Электронная почта” для получения сообщений от системы о результатах выполнения скрипта;
- Ниже укажите следующую информацию:
- Общие параметры — периодичность выполнения задания. Выберите один из вариантов из выпадающего списка или укажите нужные параметры вручную;
- Минута — любое целое число от 0 до 59;
- Час -любое целое от 0 до 23;
- День — любое целое от 1 до 31 (день должен быть корректным, если указан месяц);
- Месяц — любое целое от 1 до 12;
- День недели — любое целое от 0 до 7, где 0 или 7 означает воскресенье;
- Команда — команда, которая должны быть выполнена. Команда должна содержать путь к обработчику этой команды и путь к скрипту, который будет выполняться этим обработчиком;
- После указания всей необходимой информации нажмите на кнопку “Добавить новое запланированное задание”.
Адрес исполняемого файла укажите в таком формате:
/usr/bin/php -f /home/логин/путь_к_скрипту/скрипт.php
Пример команды запуска через wget утилиту:
/usr/bin/wget -t 1 -O - 'http://имя_домена/скрипт.php'
Использование звездочки (*) в полях при настройке означает, что не имеет значения, что это за значение. Работа выполняется, когда дата и время на сервере соответствуют всем указанным значениям. Любое значение со звездой (*) будет соответствовать по умолчанию.
Отключить уведомления на почтовый адрес можно добавив » > /dev/null 2>&1″ в конце задания.
ISPmanager
- Перейдите в личном кабинете в меню «Хостинг – Мой хостинг» и нажмите «Открыть ISPmanager»;
- В новом окне откроется ISPmanager. Перейдите в раздел “Главное — Планировщик”;
- Нажмите на кнопку “Создать”;
- Заполните поля:
- Адрес e-mail — для получения сообщений от системы о результатах выполнения скрипта;
- Команда — команда, которая должны быть выполнена. Команда должна содержать путь к обработчику этой команды и путь к скрипту, который будет выполняться этим обработчиком;
- Описание — укажите подсказку в виде описания;
- Расписание — выберите тип расписания и в оставшихся полях задайте периодичность выполнения задания. Базовый режим позволяет выбрать настройку из предложенных вариантов, экспертный — позволяет выбирать более точные значения;
- Не отправлять отчёт по e-mail — установите флажок, чтобы вывод команды не пересылался на адрес электронной почты, указанный в настройках планировщика;
- По окончанию нажмите кнопку “Ok”.
Адрес исполняемого файла укажите в таком формате:
/usr/bin/php /var/www/логин/data/www/имя_домена/скрипт.php
Пример команды запуска через wget утилиту:
/usr/bin/wget -t 1 -O - 'http://имя_домена/скрипт.php'
Plesk
- Перейдите в личном кабинете в меню «Хостинг – Мой хостинг» и нажмите «Открыть Plesk»;
- Перейдите в раздел “Сайты и домены — Планировщик задач”;
- Нажмите на кнопку “Добавить задачу”;
- Выберите тип задачи:
- Выполнить команду — в поле “Команда” введите команду для запуска, которая должна выполняться;
- Получить URL-адрес — в поле “URL-адрес” укажите URL-адрес, где находится скрипт, при этом команду вводить не нужно;
- Выполнить PHP-скрипт — в поле “Путь к скрипту” укажите путь к скрипту относительно папки виртуального сервера. Можно нажать значок папки, чтобы быстро найти файл скрипта. Также, выберите из списка нужную версию PHP;
- Следующие поля одинаковы для всех типов задач:
- Запустить — выберите периодичность выполнения задания и назначьте время исполнения;
- Описание — укажите подсказку в виде описания;
- Уведомлять — выберите тип уведомлений;
- По окончанию изменений нажмите кнопку “ОК”.
Также, прежде чем сохранить задачу, есть возможность запустить ее в тестовом режиме, чтобы проверить, что она настроена верно. Нажмите “Запустить сейчас” и дождитесь окончания задачи. Если задача завершается с ошибкой, ошибка будет происходить и при выполнении задачи планировщиком, пока вы не найдете и не устраните проблему.
По умолчанию время указывается в часовом поясе сервера. Если вам нужен другой часовой пояс, перейдите на страницу Сайты и домены > Планировщик задач > Настройки. Вы также можете добавить описание задачи и настроить уведомления.
Как правильно указывать время выполнения в планировщике Cron?
- Для каждого параметра времени можно указать звездочку (*), что означает все допустимые значения. Например, если поставить звёздочку в значении месяца, команда будет выполняться каждый месяц во время, указанное другими параметрами;
- Дефис (-) между целыми числами обозначает диапазон чисел. Например, 1-4 означает целые числа 1, 2, 3 и 4;
- Список значений, разделенных запятыми (,), обозначает перечень. Например, перечисление 3,4,6,8 означает четыре указанных целых числа (перечислять нужно без пробелов);
- Косая черта (/) используется для определения шага значений в конкретном диапазоне значений. Например, значение минут 2-19/3 показывает, что команда будет выполняться каждую третью минуту в диапазоне 2-19 минут (эквивалент 2,5,8,11,14,17). В качестве диапазона значений также может быть указана звёздочка, что будет означать каждое значение во всем диапазоне. Например, значение минут */10 показывает, что команда будет выполняться каждую десятую минуту (эквивалент 0,10,20,30,40,50);
- Все указанные методы можно комбинировать, что позволит более точно настроить время выполнения. Например значение минут можно указать как 1,5,11-15,30-39/2 и это будет означать 1,5,11,12,13,14,15,30,32,34,36,38 минуту;
Примеры готовых задач
Каждый день запускать perl скрипт в 16:10 и отправлять результат на почту:
10 16 * * * /usr/bin/perl /home/username/bin/yourscript.pl
В каждую субботу в 2:00 запускать bash скрипт и отправлять на почту только ошибки:
0 2 * * 6 /home/username/weekly/weekly-pruning.sh >/dev/null
Раз в час выполнять php скрипт и не отправлять никаких сообщений на почту:
0 * * * * /usr/bin/php /home/username/cron.php >/dev/null 2>&1