Купить Корзина
  • Домены и сайты
  • Облако и IT-инфраструктура
  • Вход
  • Телефон в Москве

    +7 495 580-11-11
  • Бесплатный звонок по России

    8 800 555-34-78
  • Или обратитесь в наши офисы

    Региональные номера
    1. База знаний
    2. Хостинг
    3. PHP, ASP.NET и скрипты
    4. Планировщик CRON

    Планировщик CRON

    В этой статье мы расскажем о том, что такое Cron, для чего он нужен и как настроить Cron на хостинге.

    Что такое Cron и файл crontab

    Cron — планировщик задач в Linux, предназначенный для автоматического выполнения команд и скриптов через определенные промежутки времени или в заранее указанные моменты. Например, с помощью Cron можно настроить ежедневное резервное копирование файлов, периодическое обновление базы данных или отправку отчетов в определенное время суток.

    Crontab (сокращение от «cron table») — это текстовый файл, в котором содержится список задач и расписание их выполнения. Каждая строка в crontab определяет команду, которая будет выполнена, а также интервал времени, когда это произойдет.

    Для чего используется Cron

    Cron используется для автоматизации рутинных задач, которые должны выполняться систематически. Чаще всего Cron используется для:

    • автоматического резервного копирования. В Cron можно добавить задание на ежедневное или еженедельное копирование данных на жесткий диск или удаленный сервер;
    • очистки временных файлов. Если на сервере создается много временных файлов, можно настроить их автоматическую очистку;
    • мониторинга состояния системы. Например, можно настроить формирование еженедельного отчета о состоянии системы и его отправку на электронную почту;
    • автоматического обновления базы данных или файлов. Cron часто используют для синхронизации данных между различными серверами или базами данных.

    Синтаксис crontab

    Чтобы эффективно работать с Cron, важно понимать синтаксис файла crontab. Каждая запись crontab состоит из двух частей: времени выполнения и самой команды. Время выполнения определяется с помощью 5 полей:

    * * * * * команда
    - - - - -
    | | | | |
    | | | | |__ День недели (0 - воскресенье, 1 - понедельник, ..., 6 - суббота)
    | | | |____ Месяц (1 - январь, 12 - декабрь)
    | | |______ День месяца (1 - 31)
    | |________ Час (0 - 23)
    |__________ Минута (0 - 59)

    Звездочки (*) обозначают каждое значение для этого поля. Например, если в поле «минуты» стоит звездочка, команда будет выполняться каждую минуту. Если вы хотите задать конкретное значение, вместо звездочки нужно указать число.

    Пример записи crontab Linux:

    30 2 * * 1 /usr/local/bin/backup.sh

    Это задание означает, что с помощью Сron запуск скрипта backup.sh будет выполняться каждую неделю по понедельникам в 2:30.

    Для настройки расписания заданий в Cron вы можете использовать следующие комбинации:

    • * * * * * — выполняется каждую минуту,
    • 0 * * * * — выполняется каждый час,
    • 0 0 * * * — выполняется ежедневно в полночь,
    • 0 0 1 * * — выполняется в первый день каждого месяца,
    • 0 0 * * 0 — выполняется каждое воскресенье.

    Как добавить задание в Cron на хостинге Linux

    Управлять заданиями планировщика можно в панели управления веб-хостингом.

    Внимание

    На виртуальном хостинге вы можете запланировать только пользовательские задачи, например, выполнение скрипта сайта. Выполнение системных задач (перезагрузка веб-сервера или сервера баз данных) недоступно.

    • 1
      Войдите в панель управления хостингом.
    • 2

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

      Планировщик CRON в ispmanager 6

    • 3

      Заполните поля:

      • Команда — введите команду для запуска, которая должна выполняться. Примеры команд приведены в разделе ниже,
      • Описание — введите описание,
      • Расписание — выберите тип расписания и в оставшихся полях задайте периодичность выполнения задания.

      Нажмите Ok:

      Настройки CRON-задания в ispmanager 6

    Обратите внимание: если вид вашей панели управления отличается от представленного в статье, в разделе «Основная информация» переключите тему с paper_lantern на jupiter.

    • 1
      Войдите в панель управления хостингом.
    • 2

      В разделе «Расширенный» нажмите Задания cron:

    • 3

      В поле Общие параметры задайте период выполнения задания, а в поле Команда введите команду для запуска, которая должна выполняться. Примеры команд приведены в разделе ниже. Нажмите Добавить новое задание:

    • 1
      Войдите в панель управления хостингом.
    • 2

      Перейдите в раздел «Сайты и домены». Нажмите Планировщик задач:

    • 3

      Нажмите Добавить задачу:

    • 4

      Выберите Тип задачи:

      • Если вы выбрали Выполнить команду, в поле Команда введите команду для запуска, которая должна выполняться. Примеры команд приведены в разделе ниже;

      • Если вы выбрали Получить URL-адрес, в поле URL-адрес укажите URL-адрес, где находится скрипт. При этом команду писать не нужно;

      =688x154

      • Если вы выбрали Выполнить PHP-скрипт, в поле Путь к скрипту укажите путь к скрипту относительно папки виртуального сервера, а в поле Аргументы укажите аргументы скрипта, если они есть. В поле Использовать версию PHP выберите версию PHP.

      Заполните остальные поля, они одинаковы для всех типов задач:

      • Запустить — выберите в раскрывающемся списке периодичность выполнения задания и назначьте время исполнения,
      • Описание — введите описание,
      • Уведомлять — выберите тип уведомлений.

      Нажмите OK:

    Готово, вы добавили новую задачу в планировщике 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.

    Команды для запуска:

    • ispmanager
    /opt/php/7.4/bin/php -f /var/www/u1234567/data/www/domain.ru/script.php
    • cPanel
    /opt/php/7.4/bin/php -f /var/www/u1234567/public_html/domain.ru/script.php
    • Plesk
    /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.

    Команды для запуска:

    • ispmanager

    Есть два варианта пути к файлу 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
    • cPanel
    /opt/php/7.4/bin/php -c /var/www/u1234567/php-bin/php.ini -f /var/www/u1234567/public_html/domain.ru/script.php
    • Plesk
    /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-скрипт, в поле Путь к скрипту укажите путь к скрипту, а в поле Аргументы укажите аргументы скрипта в зависимости от модуля:

    На PHP

    Путь к скрипту:

    C:\Program Files (x86)\Parallels\Plesk\Additional\PleskPHP74\php.exe

    Где PleskPHP74 — версия PHP: Как узнать версию PHP на хостинге.

    Аргументы:

    c:\inetpub\vhosts\u1234567.plsk.regruhosting.ru\httpdocs\domain.ru\script.php

    Где:

    • u1234567 — ваш логин хостинга: Как узнать логин хостинга,
    • domain.ru — имя вашего домена,
    • script.php — имя файла с cron-заданием.
    На ASP/ASP.NET

    Путь к скрипту:

    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.

    Внимание

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

    Помогла ли вам статья?

    Спасибо за оценку. Рады помочь 😊

     👍
    Специальные предложения
    • Бесплатный хостинг для сайта
    • Дешевый хостинг
    • Бесплатный VPS-сервер
    • Дешёвые VPS
    Рассылка Рег.ру

    Лайфхаки, скидки и новости об IT

    Даю согласие на получение рекламных и информационных материалов

    Домены и сайты
    • Домены
    • Хостинг
    • Создание сайтов
    • SSL-сертификаты
    • VPS и VDS серверы
    • Whois
    • Магазин доменов
    Облако
    и IT-инфраструктура
    • Облачные серверы
    • Частное облако
    • Облачное хранилище
    • Kubernetes в облаке (K8S)
    • Облачные базы данных
    • Выделенные серверы
    Полезное
    • Стоимость услуг
    • Cпособы оплаты
    • База знаний
    • Документы
    • ЭДО
    • Партнерам
    • Сообщить о нарушении
    • РБК: новости России и мира сегодня
    • Новости компаний РФ
    • РБК Инвестиции: курсы валют
    Компания
    • О компании
    • Контакты
    • Офисы
    • Новости
    • Акции и скидки
    • Блог
    • Отзывы клиентов
    8 800 555-34-78 Бесплатный звонок по России
    +7 495 580-11-11 Телефон в Москве
    • vk
    • telegram
    • ok
    • moikrug
    • youtube
    • twitter
    • Облачная платформа Рег.ру включена в реестр российского ПО Запись №23682 от 29.08.2024
    • © ООО «РЕГ.РУ»
    • Политика конфиденциальности
      Политика обработки персональных данных
      Правила применения рекомендательных технологий
      Правила пользования
      и другие правила и политики
    • Нашли опечатку?
      Выделите и нажмите Ctrl+Enter
    • Мы используем cookie и рекомендательные технологии для персонализации сервисов и удобства пользователей. Вы можете запретить сохранение cookie в настройках своего браузера