Перейти к основному контенту

Настройка cron-задания на выделенном сервере

Cron — планировщик задач, который используется для периодического выполнения заданий в определённое время.

Чтобы корректно настраивать cron-задания, выберите нужную инструкцию ниже в зависимости от того, установлена ли на вашем сервере панель управления ISPmanager, и следуйте ей:

Настройка cron-заданий на сервере без панели управления ISPmanager

Для просмотра, редактирования и добавления новых задач откройте командную строку и выполните команду: crontab -e

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

Задачи добавляются в формате: минута час день месяц день_недели /путь_к_файлу

Минуты, часы, дни, месяцы и день недели могут быть заданы тремя способами:

Комбинация Что это значит? Пример Комментарий
1. символ * Задача будет повторяться каждую минуту, час или день и т.д. * /path/to/file Cron-задание будет запускать задачу каждую минуту.
2. цифра Задача будет запускаться в определённое время. 5 /path/to/file Cron-задание будет запускать задачу каждый час в 05 минут.
3. /цифра Задача запускается с определённым интервалом. /3 * /path/to/file Cron-задание будет запускать задачу через каждые три часа.
Совет
Мы рекомендуем указывать абсолютный путь файла, для которого применяется cron-задание, так как переменная path может отличаться у разных пользователей. Как узнать абсолютный путь корневой папки сайта?

Примеры команд для cron-заданий

Запуск задания через get

Используется, если cron-задание должно запускаться с учётом контекста движка:

get http://site.ru/script.php

где site.ru — имя вашего домена, а script.php — имя файла с заданием.

Запуск задания через wget

Альтернативный вариант запуска cron-задания с учётом контекста движка:

wget -q -O - http://site.ru/script.php > /dev/null 2>&1

где site.ru — имя вашего домена, а script.php — имя файла с заданием.

Запуск задания под разными версиями PHP

При добавления cron-задания с помощью команд get или wget, PHP-скрипт будет запускаться тем интерпретатором PHP, версия которого активирована в панели управления хостингом.

Если необходимо выполнять скрипт под другой версией PHP, запустите cron-задание через CLI.

Обратите внимание

Скрипты можно запускать и через php и через php-cgi. Например:

  • /opt/php/5.4-with-xcache/bin/php-cgi
  • /opt/php/5.4-with-xcache/bin/php

О том, какой режим подойдёт для работы скриптов, вы можете узнать у разработчиков вашего сайта.

Запуск задания через CLI

Cron-задание можно выполнить в командной строке. Например, если требуется запустить скрипт под версией PHP 5.3:

Для ISPmanager:

/opt/php/5.3/bin/php -f /var/www/user_name/data/www/site.ru/script.php

где user_name — имя пользователя, site.ru — имя вашего домена, script.php — имя файла с cron-заданием.

Настройка cron-заданий на сервере с панелью управления ISPmanager
Совет
Не рекомендуется добавлять задачи от root-пользователя, так как это может негативно сказаться на безопасности вашего сервера.
  1. 1.
  2. 2.

    В разделе «Система» выберите пункт Планировщик и нажмите Создать:

    настройка cron-заданий на выделенном сервере 1

  3. 3.

    В поле «Команда» введите команду, которую необходимо выполнять, ниже установите время запуска задания и нажмите Ok:

    настройка cron-заданий на выделенном сервере 2

    Готово. После выполнения предыдущего шага вы зададите cron-задание для выбранного файла в панели управления ISPmanager.

Частые ошибки в cron-заданиях

Некорректный путь к исполняемому файлу

Проверьте корректность пути, запустив команду из командной строки сервера (SSH).

Ошибки при запуске планировщика

Проанализируйте лог-файл «var/log/errors.log», чтобы найти причину проблемы. Вы можете получить отчёт о выполнении cron-задания на e-mail. Для этого: в панели управления ISPmanager в разделе «Система» выберите пункт Планировщик. Нажмите Настройки планировщика. На открывшейся странице введите e-mail, на который будут высланы результаты запуска, и нажмите Оk:

настройка cron-заданий на выделенном сервере 3

У консольной версии PHP не подключён ioncube

Проверьте, подключён ли ioncube, запустив cron-команду из консоли сервера.

Используется curl (wget), который не установлен на сервере

Попробуйте оба варианта: с «wget» и с «curl». Мы советуем указывать абсолютный путь к соответствующей утилите curl или wget в команде. Также рекомендуется прописывать URL-адрес файла, а не его системный путь.

Запускается PHP старой версии

Такая ситуация может возникать, если на сервере установлено несколько версий PHP. При добавлении cron-задания с помощью get или wget, PHP-скрипт будет запускаться тем интерпретатором PHP, версия которого активирована в панели управления хостингом.

Была ли эта статья полезной?
Пользователи, считающие этот материал полезным: 0 из 0