В статье мы расскажем о планировщике задач Cron и о том, как настроить Cron-задание на хостинге.
- Что такое Cron
- Какой синтаксис имеет выражение Cron
- Как формируется абсолютный путь до корневой папки аккаунта
- Как узнать путь до исполняемой программы
- Как добавить задание в Cron
- Как подписаться на уведомления
Что такое Cron
Cron (Command Run ON) — это программа-планировщик в UNIX-подобных системах. Она позволяет запланировать задачу и выполнить ее в определенное время. Весь функционал планировщика хранится в директории Crontab — в ней находятся файлы конфигурации, которые регулируют работу Cron.
Чаще всего Cron используется в ОС семейства Linux: он помогает автоматизировать некоторые действия на хостинге и повторять их с определенной периодичностью. Это может быть:
- создание резервной копии сайта,
- выкладка нового функционала,
- отправка почты через форму обратной связи и т. д.
Помимо стандартного функционала, через Cron можно настроить запуск собственного PHP-скрипта. Для этого нужно создать файл с вашим скриптом и загрузить его на хостинг. После этого в настройках Cron-задания необходимо указать путь к файлу.
Какой синтаксис имеет выражение Cron
Задача, которая создана в Cron, имеет следующий формат:
Вы можете настроить выполнение задач по расписанию. Для этого используется несколько параметров:
Параметр | Значение | Описание |
---|---|---|
Минуты | от 0 до 59 | Команда выполняется в указанную минуту |
Часы | от 0 до 23 | Команда запускается в указанный час |
Дни | от 1 до 31 | Команда выполняется в указанный день месяца |
Месяцы | от 1 до 12 |
Команда выполняется в указанном месяце, где: |
Дни недели | от 0 до 7 | Задание выполняется в указанный день недели, где: 0 — воскресенье, 1 — понедельник, 2 — вторник, 3 — среда, 4 — четверг, 5 — пятница, 6 — суббота, 7 — воскресенье. |
Необязательно указывать число в каждом параметре — его можно заменить знаком *. Что это будет значить для разных параметров:
- Минуты — команда будет выполняться ежеминутно,
- Часы — задание в разделе Crontab будет исполняться каждый час,
- Дни — задание будет выполняться каждый день месяца,
- Месяцы — задание будет выполняться ежемесячно,
- Дни недели — команда будет исполняться ежедневно.
В качестве примера разберем следующую команду:
Эта запись значит, что задание из файла для Crontab будет исполняться каждый понедельник в 9 часов утра.
Если вы хотите указать несколько значений для одного параметра, между ними можно поставить запятую или дефис. Например:
Эта запись означает, что пользовательский скрипт будет исполняться в 9:00 и в 18:00 с понедельника по пятницу включительно.
Как формируется абсолютный путь до корневой папки аккаунта
Абсолютный путь к корневой директории хостинга имеет следующий вид:
Где:
- /home — домашняя папка сервера.
- /u — первая буква логина аккаунта
- /username — логин аккаунта.
Обратите внимание: Linux-хостинг чувствителен к регистру. Если вам нужно использовать название файла с исполняемым скриптом, его нужно вводить в точном соответствии с регистром названия.
Например, если исполняемый файл называется SCRIPT.PHP, то путь к нему должен иметь следующий вид:
Как узнать путь до исполняемой программы
Для создания задания потребуется путь до исполняемой программы. Чтобы узнать его:
- Подключитесь к хостингу по SSH.
- Выполните команду:
Вместо perl укажите название программы, которая должна выполняться в рамках задания.
В выводе этой команды отобразится путь:
Готово, вы узнали до исполняемой программы.
Для PHP путь к команде зависит от необходимой для запуска скрипта версии языка. По умолчанию команда /usr/bin/php запускает версию PHP 5.2. Если необходимый скрипт рассчитан на работу с другой версией, во избежание ошибок выполнения необходимо добавить к пути к команде необходимую версию следующим образом:
Поддерживаемые версии PHP на хостинге: 5.3, 5.4, 5.5, 5.6, 7.0, 7.1, 7.2, 7.3, 7.4, 8.0, 8.1
Например, для версии PHP 7.4 путь будет следующим:
Как добавить задание в Cron
- Перейдите в панель управления.
- Разверните блок Инструменты и выберите Crontab:
- Нажмите Добавить задание:
- Заполните поля:
- Минута — укажите минуты в диапазоне от 0 до 59,
- Час — укажите час в диапазоне от 0 до 23,
- День — укажите число месяца в диапазоне от 1 до 31,
- Месяц — укажите месяц в формате от 1 до 12,
- День недели — укажите день недели в диапазоне от 0 до 7,
- Команда — добавьте команду, которую нужно выполнить.
Затем кликните Добавить:
После этого программный код будет запускаться в заданное время.
Готово, вы добавили задание в разделе Кронтаб.
Как подписаться на уведомления
Если вам необходимы уведомления о выполнении Cron-заданий, их можно получать на электронную почту. Чтобы настроить пересылку:
- Перейдите в раздел Crontab.
- Укажите электронную почту и нажмите Сохранить:
Письма будут отправляться в том случае, если в результате выполнения задания формируется какой-либо текстовый вывод, само письмо будет содержать вывод команды.
Если вам нужно отключить уведомление для одного из заданий, в конце команды можно дописать следующую последовательность символов, отключающую вывод текста при её выполнении:
Например, для команды /usr/bin/php7.4 /home/l/login/script.php: