Планировщик заданий Cron
Cron — это планировщик задач в Linux, позволяющий выполнять команды на сервере в назначенное время с нужной периодичностью. Настроить его можно в разделе «Инструменты» — «Crontab» в панели управления.
Редактировать Crontab утилитой crontab
на сервере не получится – она закрыта для безопасности. При запуске появится ошибка:
xxxxxxx@vh424:~$ crontab -e
Редактирование cron-задач доступно только через Панель Управления Аккаунтом.
Создание задачи
Чтобы создать задачу, перейдите в раздел «Инструменты» — «Crontab».
Нажмите на кнопку «Добавить новую задачу», появится форма:
Продвинутые настройки
Сначала рассмотрим продвинутые настройки, так как все остальные — это сокращения, чтобы удобнее создавать задачи. Чтобы перейти к продвинутым настройкам, выберите:
- Исполнитель: «Исполняемый бинарный файл»
- Периодичность: «Продвинутые настройки»
Такой набор настроек позволит создавать задачу максимально приближенно к «настоящему» Crontab, который будет создавать панель управления на сервере.
Например, создадим задачу, которая будет отправлять HTTP-запрос на сайт https://timeweb.com/ каждую минуту. В качестве команды будем запускать wget
— утилиту для скачивания файлов.
«Путь до файла» — это команда, которая будет выполняться на сервере. Здесь вы можете написать путь до исполняемого файла или любую другую команду, как на примере.
«Периодичность» можно заполнить с помощью шпаргалки: https://crontab.guru/. Только в панели управления нужно заполнять периодичность в зеркальном порядке — сначала идет день недели, а не минуты.
Шаблоны периодичности
В панели управления есть несколько шаблонов для частых случаев периодичности.
Например, если вам нужно запускать задачу каждый день, вы можете выбрать шаблон «Раз в день» и указать в форме нужный час и минуту.
Шаблоны исполнителей
Команда собирается из двух параметров: «Исполнитель» и «Путь до файла».
Каждый «Исполнитель» по-своему дополняет итоговую команду.
Исполнитель | Итоговая команда |
Сценарий PHP X.X | /opt/phpXX/bin/php /home/x/xxxxxxx/<Путь до файла> |
Сценарий Perl | /usr/local/bin/perl /home/x/xxxxxxx/<Путь до файла> |
Сценарий Python | /usr/bin/python /home/x/xxxxxxx/<Путь до файла> |
Сценарий SH | /bin/sh /home/x/xxxxxxx/<Путь до файла> |
HTTP-запрос | wget -O /dev/null -q <URL для запроса> |
Исполняемый бинарный файл | <Путь до файла> |
Важно: когда выбираете один из «сценариев», нужно указывать путь до файла относительно домашней директории. Например:
/test.php
— так сработает/home/x/xxxxxxx/test.php
— так будет ошибка
Все исполнители-сценарии сами пишут абсолютный путь до домашней директории, поэтому если указать ее в «Путь до файла», то путь продублируется.
Если ни один из готовых исполнителей вам не подходит, вы можете выбрать «Исполняемый бинарный файл» и написать полную команду так, как вам нужно.
Отслеживание ошибок
Вы можете получать уведомления с результатом выполнения команды на свой почтовый ящик. Чтобы это настроить, следуйте шагам:
- Перейдите в раздел «Инструменты» — «Crontab».
- Нажмите на «Указать ящик».
- Введите почтовый адрес и нажмите на галочку для сохранения.
На почту будет отправляться стандартный поток вывода (stdout) и стандартный поток ошибок (stderr). Другими словами, будет всё, что напечатает команда, и также все ошибки.
Чтобы в письме оставались только ошибки, вы можете перенаправить стандартный вывод в пустоту:
команда > /dev/null