В этой статье мы расскажем о том, что такое 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 и нажмите Создать задание:
-
3
Заполните поля:
- Команда — введите команду для запуска, которая должна выполняться. Примеры команд приведены в разделе ниже,
- Описание — введите описание,
- Расписание — выберите тип расписания и в оставшихся полях задайте периодичность выполнения задания.
Нажмите Ok:
Обратите внимание: если вид вашей панели управления отличается от представленного в статье, в разделе «Основная информация» переключите тему с 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.
Внимание
Если вы выполнили все шаги инструкции, но не получили желаемого результата, это может быть связано с локальными настройками. Напишите заявку в службу поддержки, наши специалисты оперативно вам помогут!
Помогла ли вам статья?
Спасибо за оценку. Рады помочь 😊