Настройка планировщика CRON

Документ актуален для InstantVideo любой версии

cron whith website

Итак, начнем с того, что такое CRON в принципе.

Cron (Command Run ON) — демон-планировщик задач в UNIX-подобных операционных системах, использующийся для периодического выполнения заданий в определённое время. Подробнее можно прочитать в Википедии.

Для InstantMedia необходимо:

  • Зайти  в панели управления хостингом в раздел "CronTab (Задания по расписанию)" — этот пункт может называться у вас по другому, например "Планировщик (cron)";
  • Создать новое задание на выполнение команды   php -f /полный_путь_до_вашей_директории_сайта/cron.php имя-домена, в поле "время выполнения" выставить запуск на каждые 5 минут. На многих хостингах так же есть опция "отсылать на e-mail отчет о выполнении" для отладки в самом начале ее необходимо включить для выявления возможных ошибок;

Возможные трудности:

  • Запуск php скриптов из командной строки запрещен, уточняйте у хостера решение проблемы,  для выполнения php скриптов из cron необходим бинарный интерпретатор PHP (php cli);
  • Запуск возможен только указав полный путь к интерпретатору php, например /usr/bin/php  -f /полный_путь_до_вашей_директории_сайта/cron.php имя домена, путь к интерпретатору PHP уточните у хостера или посмотрите в настройках компонента во разделе "Диагностика" - если компонент верно определил пути, будет выведена готовая команда;
  • Неизвестный Вам полный путь от корня сервера до вашей web директории - этого уточните у хостера;

Возможная готовая команда для планировщика показана в админке во вкладке диагностика компонента InstantVideo.

Для тех кто предпочитает консоль:

Управлять cron нужно с помощью команды crontab. Команда "crontab -e" автоматически запустит текстовый редактор и загрузит в него файл конфигурации cron. После выхода из редактора, новая конфигурация cron будет установлена (вступит в силу) автоматически.

Конфигурационный файл содержит последовательность командных строк и расписание их вызова. Пустые строки и строки, начинающиеся с символа '#' игнорируются. Остальные строки являются установками переменных окружения и командами cron.

Запись crontab файла в общем случае состоит из семи полей:

минуты  часы  день  месяц  день_недели  имя_пользователя команда

Допустимые значения временных параметров:

  • минуты 0-59
  • часы 0-23
  • день_месяца 1-31
  • месяц 1-12
  • день_недели 0-7 (0-Вс,1-Пн,2-Вт,3-Ср,4-Чт,5-Пт,6-Сб,7-Вс)

Поле может быть задано явно или шаблоном:

  • звездочка - любая цифра;
  • целое число;
  • целые числа через запятую — задание дискретного множества значений;
  • два целых числа, разделенные дефисом, соответствующие диапазону значений.

Пример сценария cron:

# Пример запуска скрипта каждые пять минут:
*/5 * * * *  /usr/bin/php -f /home/www/cron.php site.ru

Посмотреть задачи можно в админке InstantCMS в разделе общих настроек сайта. Внимание! Для некоторых заданий интервал запуска должен  быть выставлен в 0 часов, не меняйте это значение.

Если ничего вышеописанное вам не помогло, значит нужно задать вопрос вашему хостеру следующего содержания: "Как настроить Планировщик заданий для автоматического запуска php-скрипта?".