# Обработчики событий

Определенные действия в Plesk, такие как:

- Создание учетной записи клиента
- Удаление IP адреса
- Обновление настроек хостинга домена, а также многие другие действия

идентифицируются в Plesk как события. Для каждого события вы можете создать один или более обработчиков, которые запускают предопределенную команду каждый раз, когда происходит это событие.

Обработчики событий полезны, если вы хотите, чтобы определенное действие или набор действий выполнялись каждый раз при совершении какого-либо события. Например, вы можете создать обработчик событий, который срабатывает каждый раз, когда создается подписка, и сконфигурировать его так, чтобы он автоматически создавал почтовый ящик, отправлял запрос к внешней службе и так далее.

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

1. Перейдите на страницу Инструменты и настройки > Менеджер событий.

2. Нажмите Добавить обработчик событий.

3. Выберите событие, для которого вы хотите создать обработчик, из списка «Событие».

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

5. Выберите системного пользователя, от имени которого будет выполняться команда, из списка «Пользователь».

   Примечание

   Администратор сервера может создавать обработчики событий, которые будут запускаться на сервере от имени пользователя root. Если вы хотите запретить запуск обработчиков от имени пользователя root, создайте пустой файл с именем `root.event_handler.lock` в папке `/usr/local/psa/var/`.

6. Введите путь к shell-скрипту или файлу .bat, содержащему команды, которые должны выполняться каждый раз при срабатывании обработчика, в поле «Команда» (например, `/usr/local/psa/bin/script.sh` или `C:\Windows\Temp\script.bat`).

   Примечание

   Удостоверьтесь в том, что ваш скрипт имеет разрешение на выполнение. Это можно сделать, запустив следующую команду: `chmod 755 <script.sh>`

7. Нажмите OK.

## Передача параметров событий

Каждый раз, когда обработчик события срабатывает, он передает определенные данные («параметры события»), связанные с событием (какие именно данные передаются ― зависит от конкретного обработчика событий). Например, обработчик события «Домен создан» передает следующие параметры:

- Имя вновь созданного домена.
- GUID вновь созданного домена.
- GUID учетной записи клиента, которому принадлежит вновь созданный домен.

Каждый параметр передается как переменная среды, которую вы можете использовать в shell-скриптах или файлах .bat следующим образом:

### Plesk для Linux

Используйте замещающий символ `${ENVIRONMENT_VARIABLE_NAME}` (например, «`${NEW_DOMAIN_NAME}`») в shell-скрипте. Когда обработчик события сработает, этот замещающий символ будет заменен значением, соответствующим происходящему событию.

### Plesk для Windows

Используйте замещающий символ `%N` (например, «`%1`») в bat-файле и добавьте имя нужной переменной среды в соответствующем месте в конце команды в настройках обработчика событий. В следующем примере

замещающий символ «`%1`» будет заменен значением переменной среды «`NEW_DOMAIN_NAME`», а «`%2`» ― значением «`NEW_DOMAIN_GUID`». Если вы используете замещающий символ «`%3`» в файле .bat, он не будет ничем заменен, так как в конце команды было указано только две переменных среды.

Вы можете просмотреть полный список всех параметров событий и соответствующих им переменных среды для каждого обработчика событий здесь.

В качестве примера рассмотрим два скрипта для события ‘Учетная запись клиента создана’:

- (Plesk для Linux) `test-handler.sh`

      #!/bin/bash
      echo "--------------" >> /tmp/event_handler.log
      /bin/date >> /tmp/event_handler.log # information on the event date and time
      /usr/bin/id >> /tmp/event_handler.log # information on the user, on behalf of which the script was executed (to ensure control)
      echo "customer created" >> /tmp/event_handler.log # information on the created customer account
      echo "name: ${NEW_CONTACT_NAME}" >> /tmp/event_handler.log # customer's name
      echo "login: ${NEW_LOGIN_NAME}" >> /tmp/event_handler.log # customer's username in Plesk
      echo "--------------" >> /tmp/event_handler.log

- (Plesk для Windows) `test-handler.bat`

      echo "--------------" >> c:\windows\temp\event_handler.log
      rem information on the event date and time
      date /T   >> c:\windows\temp\event_handler.log
      rem information on the created customer account
      echo "customer created" >> c:\windows\temp\event_handler.log
      rem customer's name
      echo "name: %1"       >> c:\windows\temp\event_handler.log
      rem customer's username in Plesk
      echo "login: %2"      >> c:\windows\temp\event_handler.log
      echo "--------------" >> c:\windows\temp\event_handler.log

Если вы войдете в Plesk и создадите учетную запись клиента с именем «John Doe» и именем пользователя “john_doe”, обработчик события сработает, и в файл event_handler.log будут добавлены следующие записи:

- (Plesk для Linux)

      Fri Mar 16 15:57:25 NOVT 2007
      uid=0(root) gid=0(root) groups=0(root)
      customer created
      name: John Doe
      login: john_doe

- (Plesk для Windows)

      Mon March 15 21:46:34 NOVT 2010
      customer created
      name: John Doe
      login: john_doe

## Изменение и удаление обработчиков событий

Чтобы просмотреть список активных на данный момент обработчиков событий, перейдите в раздел Инструменты и настройки > Менеджер событий. Здесь вы можете также изменять и удалять обработчики событий:

- Чтобы изменить обработчик событий, нажмите его имя, выполните необходимые изменения и нажмите OK.
- Чтобы удалить обработчик событий, поставьте соответствующую галочку и нажмите Удалить.