Обработчики событий
Определенные действия в Plesk, такие как:
- Создание учетной записи клиента
- Удаление IP адреса
- Обновление настроек хостинга домена, а также многие другие действия
идентифицируются в Plesk как события. Для каждого события вы можете создать один или более обработчиков, которые запускают предопределенную команду каждый раз, когда происходит это событие.
Обработчики событий полезны, если вы хотите, чтобы определенное действие или набор действий выполнялись каждый раз при совершении какого-либо события. Например, вы можете создать обработчик событий, который срабатывает каждый раз, когда создается подписка, и сконфигурировать его так, чтобы он автоматически создавал почтовый ящик, отправлял запрос к внешней службе и так далее.
Добавление обработчиков событий
-
Перейдите на страницу Инструменты и настройки > Менеджер событий.
-
Нажмите Добавить обработчик событий.
-
Выберите событие, для которого вы хотите создать обработчик, из списка «Событие».
-
В поле «Приоритет» установите приоритет выполнения обработчика, выбрав значение из списка или указав в поле произвольное число. Приоритет имеет значение, если вы назначаете несколько обработчиков одному событию. В этом случае обработчики срабатывают в порядке убывания приоритета (сначала срабатывает обработчик с наивысшим приоритетом, затем второй по приоритету и так далее).
-
Выберите системного пользователя, от имени которого будет выполняться команда, из списка «Пользователь».
Примечание: Администратор сервера может создавать обработчики событий, которые будут запускаться на сервере от имени пользователя root. Если вы хотите запретить запуск обработчиков от имени пользователя root, создайте пустой файл с именем
root.event_handler.lock
в папке/usr/local/psa/var/
. -
Введите путь к shell-скрипту или файлу .bat, содержащему команды, которые должны выполняться каждый раз при срабатывании обработчика, в поле «Команда» (например,
/usr/local/psa/bin/script.sh
илиC:\Windows\Temp\script.bat
).Примечание: Удостоверьтесь в том, что ваш скрипт имеет разрешение на выполнение. Это можно сделать, запустив следующую команду:
chmod 755 <script.sh>
-
Нажмите 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.
- Чтобы удалить обработчик событий, поставьте соответствующую галочку и нажмите Удалить.