Планировщик заданий Cron

Cron — это планировщик задач в Linux, позволяющий выполнять команды на сервере в назначенное время с нужной периодичностью. Настроить его можно в разделе «Инструменты» — «Crontab» в панели управления.

Редактировать Crontab утилитой crontab на сервере не получится – она закрыта для безопасности. При запуске появится ошибка:

xxxxxxx@vh424:~$ crontab -e
Редактирование cron-задач доступно только через Панель Управления Аккаунтом.

Создание задачи

Чтобы создать задачу, перейдите в раздел «Инструменты» — «Crontab».

Crontab

Нажмите на кнопку «Добавить новую задачу», появится форма:

Создание задачи Crontab

Продвинутые настройки

Сначала рассмотрим продвинутые настройки, так как все остальные — это сокращения, чтобы удобнее создавать задачи. Чтобы перейти к продвинутым настройкам, выберите:

  • Исполнитель: «Исполняемый бинарный файл»
  • Периодичность: «Продвинутые настройки»

Такой набор настроек позволит создавать задачу максимально приближенно к «настоящему» Crontab, который будет создавать панель управления на сервере.

Например, создадим задачу, которая будет отправлять HTTP-запрос на сайт https://timeweb.com/ каждую минуту. В качестве команды будем запускать wget — утилиту для скачивания файлов.

Пример задачи Crontab

«Путь до файла» — это команда, которая будет выполняться на сервере. Здесь вы можете написать путь до исполняемого файла или любую другую команду, как на примере.

«Периодичность» можно заполнить с помощью шпаргалки: https://crontab.guru/. Только в панели управления нужно заполнять периодичность в зеркальном порядке — сначала идет день недели, а не минуты.

Шаблоны периодичности

В панели управления есть несколько шаблонов для частых случаев периодичности.

Шаблоны периодичности Crontab

Например, если вам нужно запускать задачу каждый день, вы можете выбрать шаблон «Раз в день» и указать в форме нужный час и минуту.

Шаблоны исполнителей

Команда собирается из двух параметров: «Исполнитель» и «Путь до файла».

Шаблоны исполнителей Crontab

Каждый «Исполнитель» по-своему дополняет итоговую команду.

Исполнитель Итоговая команда
Сценарий 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 — так будет ошибка

Все исполнители-сценарии сами пишут абсолютный путь до домашней директории, поэтому если указать ее в «Путь до файла», то путь продублируется.

Если ни один из готовых исполнителей вам не подходит, вы можете выбрать «Исполняемый бинарный файл» и написать полную команду так, как вам нужно.

Отслеживание ошибок

Вы можете получать уведомления с результатом выполнения команды на свой почтовый ящик. Чтобы это настроить, следуйте шагам:

  1. Перейдите в раздел «Инструменты» — «Crontab».
  2. Нажмите на «Указать ящик».
  3. Введите почтовый адрес и нажмите на галочку для сохранения.

D664360b 6c06 4daa 9f20 4c8c08b0049f

На почту будет отправляться стандартный поток вывода (stdout) и стандартный поток ошибок (stderr). Другими словами, будет всё, что напечатает команда, и также все ошибки.

Чтобы в письме оставались только ошибки, вы можете перенаправить стандартный вывод в пустоту:

команда > /dev/null