Добавление обработчиков событий (Linux)

Давайте в качестве примера создадим обработчик для события «создание учетной записи клиента». Этот обработчик будет принимать имя и логин клиента Plesk из переменных среды. Для простоты воспользуемся shell-скриптом test-handler.sh, который выглядит следующим образом:

#!/bin/bash

echo "--------------" >> /tmp/event_handler.log

/bin/date >> /tmp/event_handler.log # информация о дате и времени события

/usr/bin/id >> /tmp/event_handler.log # информация о пользователе, от имени которого был выполнен скрипт (для контроля)

echo "customer created" >> /tmp/event_handler.log # информация о созданной учетной записи клиента

echo "name: ${NEW_CONTACT_NAME}" >> /tmp/event_handler.log # имя клиента

echo "login: ${NEW_LOGIN_NAME}" >> /tmp/event_handler.log # имя пользователя клиента в Plesk

echo "--------------" >> /tmp/event_handler.log

Этот скрипт заносит определенную информацию в файл, что позволяет следить за его выполнением (вывести информацию в stdout/stderr невозможно, так как скрипт выполняется в фоновом режиме).

Примечание. Мы настоятельно рекомендуем обрабатывать события с помощью shell-скриптов. Команды, в которых есть вызов системных утилит, могут не выполниться. Например, команды с операторами перенаправления вывода < или > работать не будут.

Допустим, наш скрипт расположен в папке /plesk_installation_directory/bin. Зарегистрируем его, создав обработчик событий через Панель управления сервером:

  1. Перейдите на страницу Инструменты и настройки > Менеджер событий.
  2. Нажмите Добавить обработчик событий.
  3. В меню Событие выберите событие, для которого вы хотите создать обработчик.
  4. Выберите приоритет запуска обработчика из списка или укажите свое значение. Для этого в меню Приоритет выберите опцию "другой" и введите значение.

    Если вы решите назначить несколько обработчиков одному событию, то с помощью приоритетов можете указать, в каком порядке их следует запускать (более высокое значение соответствует более высокому приоритету).

  5. Выберите системного пользователя, от имени которого будет запускаться данный обработчик (например, "root").
  6. В поле Команда укажите команду, которую следует выполнять в случае выбранного события. В нашем примере это /usr/local/psa/bin/test-handler.sh.
  7. Нажмите OK.

Примечание. В этом скрипте мы указали переменные $NEW_CONTACT_NAME и $NEW_LOGIN_NAME. При запуске обработчика они будут заменены на контактное имя и логин созданной учетной записи соответственно. Полный список доступных переменных приведен в Приложении В: Параметры событий, передаваемые обработчиками событий.

Теперь, если вы войдете в Plesk и создадите клиента, указав в поле Контактное имя значение 'Иван Иванов', а в поле Имя пользователя - 'иван_иванов', то будет вызван данный обработчик, а в файл /tmp/event_handler.log добавятся следующие записи:

Fri Mar 16 15:57:25 NOVT 2007

uid=0(root) gid=0(root) groups=0(root)

customer created

name: Иван Иванов

login: иван_иванов

Чтобы создать еще один или несколько обработчиков, повторите перечисленные выше действия.