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

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

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

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

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

Далее в этом разделе:

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

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

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

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

 

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

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

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

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

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

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

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

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

Plesk для Linux

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

Plesk для Windows

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

2

замещающий символ "%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 # информация о дате и времени события

    /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

  • (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 the 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.
  • Чтобы удалить обработчик событий, поставьте соответствующую галочку и нажмите Удалить.
 

Leave your feedback on this topic here

If you have questions or need support, please visit the Plesk forum or contact your hosting provider.
The comments below are for feedback on the documentation only. No timely answers or help will be provided.