Определенные действия в 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-файле и добавьте имя нужной переменной среды в соответствующем месте в конце команды в настройках обработчика событий. В следующем примере

image 78436

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