Cron — планировщик задач, который используется для периодического выполнения заданий в определённое время.
Чтобы корректно настраивать cron-задания, выберите нужную инструкцию ниже в зависимости от того, установлена ли на вашем сервере панель управления ispmanager, и следуйте ей:
Настройка cron-заданий на сервере без панели управления ispmanager
Для просмотра, редактирования и добавления новых задач откройте командную строку и выполните команду: crontab -e
Обратите внимание
Добавляйте задачи от имени того пользователя, под которым вы авторизованы. Не рекомендуется добавлять задачи под root-пользователем, так как это может негативно сказаться на безопасности вашего сервера.
Задачи добавляются в формате: минута час день месяц день_недели /путь_к_файлу
Минуты, часы, дни, месяцы и день недели могут быть заданы тремя способами:
Совет
Мы рекомендуем указывать абсолютный путь файла, для которого применяется 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 Откройте панель управления ispmanager на выделенном сервере.
-
2
В разделе Планировщик CRON нажмите Создать задание:
-
3
В поле «Команда» введите команду, которую необходимо выполнять, ниже установите время запуска задания и нажмите Ok:
Готово. После выполнения предыдущего шага вы зададите cron-задание для выбранного файла в панели управления ispmanager.
Частые ошибки в cron-заданиях
Некорректный путь к исполняемому файлу
Проверьте корректность пути, запустив команду из командной строки сервера (SSH).
Ошибки при запуске планировщика
Проанализируйте лог-файл «var/log/errors.log», чтобы найти причину проблемы. Вы можете получить отчёт о выполнении cron-задания на e-mail. Для этого: в панели управления ispmanager выберите пункт Планировщик CRON и нажмите Настройки:
На открывшейся странице введите e-mail, на который будут высланы результаты запуска, и нажмите Оk:
У консольной версии PHP не подключён ioncube
Проверьте, подключён ли ioncube, запустив cron-команду из консоли сервера.
Используется curl (wget), который не установлен на сервере
Попробуйте оба варианта: с «wget» и с «curl». Мы советуем указывать абсолютный путь к соответствующей утилите curl или wget в команде. Также рекомендуется прописывать URL-адрес файла, а не его системный путь.
Запускается PHP старой версии
Такая ситуация может возникать, если на сервере установлено несколько версий PHP. При добавлении cron-задания с помощью get или wget, PHP-скрипт будет запускаться тем интерпретатором PHP, версия которого активирована в панели управления хостингом.
Помогла ли вам статья?
Спасибо за оценку. Рады помочь 😊