- Планировщик CRON
- Как добавить новую задачу на хостинге Linux
- Примеры команд для cron-заданий
- Запуск задания через GET
- Запуск задания через WGET
- Запуск задания через CLI
- Запуск задания через CLI с учётом параметров php.ini
- Как добавить новую задачу на хостинге Windows
- Настройка и запуск cron на веб-сервере
- Как задавать время в Cron
- Пример
- Настройка Cron в ISPmanager
- Настройка Cron для запуска PHP-скрипта
- Полезные примеры
Планировщик CRON
Cron (Command Run ON) — планировщик задач. Используется для выполнения команд и скриптов на сервере хостинга в определённое время. Планировщик cron будет доступен после заказа услуги хостинга Linux.
Как добавить новую задачу на хостинге Linux
Управлять заданиями планировщика можно в панели управления веб-хостингом.
На виртуальном хостинге вы можете запланировать только пользовательские задачи, например, выполнение скрипта сайта. Выполнение системных задач (перезагрузка веб-сервера или сервера баз данных) недоступно.
- Команда — введите команду для запуска, которая должна выполняться. Примеры команд приведены в разделе ниже,
- Описание — введите описание,
- Расписание — выберите тип расписания и в оставшихся полях задайте периодичность выполнения задания.
Обратите внимание: если вид вашей панели управления отличается от представленного в статье, в разделе «Основная информация» переключите тему с paper_lantern на jupiter.
В поле Общие параметры задайте период выполнения задания, а в поле Команда введите команду для запуска, которая должна выполняться. Примеры команд приведены в разделе ниже. Нажмите Добавить новое задание:
- Если вы выбрали Выполнить команду, в поле Команда введите команду для запуска, которая должна выполняться. Примеры команд приведены в разделе ниже;
- Если вы выбрали Получить URL-адрес, в поле URL-адрес укажите URL-адрес, где находится скрипт. При этом команду писать не нужно;
- Если вы выбрали Выполнить PHP-скрипт, в поле Путь к скрипту укажите путь к скрипту относительно папки виртуального сервера, а в поле Аргументы укажите аргументы скрипта, если они есть. В поле Использовать версию PHP выберите версию PHP.
Заполните остальные поля, они одинаковы для всех типов задач:
- Запустить — выберите в раскрывающемся списке периодичность выполнения задания и назначьте время исполнения,
- Описание — введите описание,
- Уведомлять — выберите тип уведомлений.
Готово, вы добавили новую задачу в планировщике cron.
Примеры команд для cron-заданий
Запуск задания через GET
GET http://domain.ru/script.php
Где http://domain.ru/script.php — URL-адрес, при обращении к которому будет выполняться сron-задание.
Запуск задания через WGET
Альтернативный вариант команды для запуска:
wget -q -O - http://domain.ru/script.php > /dev/null 2>&1
Где http://domain.ru/script.php — URL-адрес, при обращении к которому будет выполняться cron-задание.
Запуск задания через CLI
При запуске задания через GET или WGET, PHP-скрипт запускается тем интерпретатором PHP, версия которого активирована в панели управления хостингом. Если вам необходимо выполнить скрипт под другой версией PHP, запустите cron-задание через CLI.
/opt/php/7.4/bin/php -f /var/www/u1234567/data/www/domain.ru/script.php
/opt/php/7.4/bin/php -f /var/www/u1234567/public_html/domain.ru/script.php
/opt/php/7.4/bin/php -f var/www/vhosts/u1234567.plsk.regruhosting.ru/httpdocs/domain.ru/script.php
- 7.4 — версия PHP: Как узнать версию PHP на хостинге,
- u1234567 — ваш логин хостинга: Как узнать пароль хостинга,
- domain.ru — имя вашего домена,
- script.php — имя файла с cron-заданием.
Обратите внимание: скрипты можно запускать через php (/opt/php/7.4/bin/php) и через php-cgi (/opt/php/7.4/bin/php-cgi). О том, какой режим подойдёт для работы скриптов, вы можете узнать у разработчиков вашего сайта.
Запуск задания через CLI с учётом параметров php.ini
Добавьте к командам ключ «-c» и пропишите полный путь до файла php.ini.
Есть два варианта пути к файлу php.ini, который зависит от того, включена ли опция php.ini для домена. Определите путь по инструкции в статье Где находятся настройки версий PHP в ISPmanager.
Если вы храните настройки PHP отдельно для каждого домена по пути /var/www/php-bin/имя-домена/php.ini, то команда выглядит так:
/opt/php/7.4/bin/php -c /var/www/u1234567/data/php-bin/domain.ru/php.ini -f /var/www/u1234567/data/www/domain.ru/script.php
Если вы используете общую версию PHP и храните настройки для всех доменов по пути /var/www/php-bin-php(номер-версии)/php.ini, то команда выглядит так:
/opt/php/7.4/bin/php -c /var/www/u1234567/data/php-bin-php(номер-версии)/php.ini -f /var/www/u1234567/data/www/domain.ru/script.php
/opt/php/7.4/bin/php -c /var/www/u1234567/php-bin/php.ini -f /var/www/u1234567/public_html/domain.ru/script.php
/opt/php/7.4/bin/php -c /var/www/vhosts/u1234567.plsk.regruhosting.ru/php-bin/php.ini -f var/www/vhosts/u1234567.plsk.regruhosting.ru/httpdocs/domain.ru/script.php
- 7.4 — версия PHP: Как узнать версию PHP на хостинге,
- u1234567 — ваш логин хостинга: Как узнать пароль хостинга,
- domain.ru — имя вашего домена,
- script.php — имя файла с cron-заданием.
Как добавить новую задачу на хостинге Windows
Заказ Windows-хостинга больше недоступен. Стоимость продления для действующих пользователей остается прежней.
Воспользуйтесь инструкцией для Plesk по инструкции выше.
Если в 4 пункте инструкции вы выбрали тип задачи Выполнить PHP-скрипт, в поле Путь к скрипту укажите путь к скрипту, а в поле Аргументы укажите аргументы скрипта в зависимости от модуля:
C:\Program Files (x86)\Parallels\Plesk\Additional\PleskPHP74\php.exe
c:\inetpub\vhosts\u1234567.plsk.regruhosting.ru\httpdocs\domain.ru\script.php
- u1234567 — ваш логин хостинга: Как узнать логин хостинга,
- domain.ru — имя вашего домена,
- script.php — имя файла с cron-заданием.
C:\Windows\System32\WindowsPowerShell\v1.0\powershell.exe
Arguments: -c "(new-object system.net.webclient).downloadstring('[http://domain.ru/script.aspx](http://mysite.ru/script.aspx)')"
Где http://domain.ru/script.php — URL-адрес, при обращении к которому будет выполняться CRON-задание.
Готово, вы добавили новую задачу в планировщике cron.
Если вы выполнили все шаги инструкции, но не получили желаемого результата, это может быть связано с локальными настройками. Напишите заявку в службу поддержки, наши специалисты оперативно вам помогут!
Настройка и запуск cron на веб-сервере
Cron — это программное обеспечение для настройки автоматического выполнения заданий (скриптов) в Unix/Linux подобных системах: Centos, Debian, Ubuntu и других. Этот планировщик задач работает аналогично во всех версиях операционных систем.
Добавить скрипт в Cron можно через специальный файл «crontab», содержащий список заданий для выполнения.
Пример пустого файла crontab
Как задавать время в Cron
Чтобы правильно добавить задание сначала указывается время и периодичность и в конце путь к исполняемому скрипту.
- минута (0-59);
- час (0-23);
- день (1-31);
- месяц (1-12);
- день недели (0-6);
- путь к исполняемому файлу.
Все значения указываются через пробел и при необходимости можно вводить множество значений через запятую.
Пример
Строка следующего вида подразумевает выполнение команды каждый день в 7 утра и 7 вечера:
0 7,19 * * * home/user1/script.sh
Настройка Cron в ISPmanager
Настроить Cron на хостинге проще всего через панель управления. Для примера разберем как производится настройка планировщика в ISPmanager 4.
- Открываем панель управления ISPmanager и переходим в «Планировщик» в разделе «Главное». Далее создаем новое задание, нажимая на кнопку «Создать».
- Заполняем поля в открывшемся редакторе и нажимаем «ОK»:
- Команда — здесь указываем полный путь (директорию) к исполняемому файлу программы или готовому рабочему скрипту.
- Описание — по желанию можно добавить краткое описание выполняемого задания.
- Расписание— добавляем расписание с возможностью выбора режима. Режим «Базовый» — с выбором доступных вариантов и «Экспертный» — самостоятельная настройка.
- Eсли есть возможность, нужно настроить получение отчетов по запуску заданий на почтовый адрес пользователя. Для этого открываем «Планировщик» → «Настройки» → «Адрес e-mail» и указываем адрес почты для получения. После чего нужно убедиться, что в настройках не стоит галочка напротив «Не отправлять отчет по e-mail».
Настройка Cron для запуска PHP-скрипта
В некоторых случаях бывает так, что автоматическое выполнение PHP-скрипта невозможно. Чаще всего подобные ошибки случаются при запуске PHP-скрипта через локальный интерпретатор. В таких случаях требуется запустить Cron вручную, для чего лучше всего использовать программу wget. В приведенном ниже примере «example.com» нужно заменить на реальный путь к вашему PHP-файлу.
0 7,19 * * * /usr/bin/wget -O - -q -t 1 ‘http://example.com/file.php’
Полезные примеры
Разберем уже приведенный выше пример, немного изменив параметры:
0 7,19 3* 7 /usr/bin/wget -O - -q -t 1/ / ‘http://example.com/file.php’ /dev/null/2>&1
Запуск PHP-скрипта будет происходить в 7:00 и 19:00 каждого воскресенья и 3 числа каждого месяца (совпадения дня недели и числа не имеют значения).
/dev/null/2>&1 — эта команда Cron добавляется в конце сценария (строки), для выполнения скрипта в фоновом режиме без уведомлений.
Помимо этого, можно добавлять другие полезные опции в конце строки планировщика Cron. Как например, для отладки запускаемого скрипта, нужен лог-файл выполнений.
То есть, если мы хотим настроить вывод результатов запуска задания Cron в определенный файл, можно изменить команду следующим образом:
0 7,19 3* 7 /usr/bin/wget -O - -q -t 1 ‘http://example.com/file.php’ > /yourdirectory/log.txt
Просмотрев такой лог, можно понять причину, почему Cron не выполняет скрипт.
Надежный хостинг для сайта. 14 дней — бесплатно!