Adición de controladores de eventos (Linux)

Pongamos, por ejemplo, que creamos un controlador de eventos para el evento 'creación de cuenta de cliente'. El gestor aceptará un nombre de cliente y las credenciales del cliente en Plesk a través de variables de entorno. Por motivos de simplicidad, usaremos un shell-script denominado test-handler.sh que tiene la siguiente apariencia:

#!/bin/bash

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

/bin/date >> /tmp/event_handler.log # información sobre la fecha y la hora del evento

/usr/bin/id >> /tmp/event_handler.log # información sobre el usuario en cuyo nombre se ejecuta el script (para garantizar el control)

echo "customer created" >> /tmp/event_handler.log # información sobre la cuenta de cliente creada

echo "name: ${NEW_CONTACT_NAME}" >> /tmp/event_handler.log # nombre del cliente

echo "login: ${NEW_LOGIN_NAME}" >> /tmp/event_handler.log # nombre de usuario del cliente en Plesk

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

Este script imprime información en un archivo para que así podamos controlar su ejecución (no podemos introducir información en stdout/stderr, ya que el script se ejecuta en modo de segundo plano).

Nota: es extremadamente recomendable usar archivos shell para gestionar eventos. Aunque puede asignar comandos directos de sistema, puede que estos no funcionen. Por ejemplo, los comandos con operadores de redirección de salida < or > no funcionarán.

Supongamos que nuestro script se encuentra en el directorio /plesk_installation_directory/bin (a modo de ejemplo). Lo registramos creando un controlador de eventos a través del Panel Administrativo:

  1. Vaya a Herramientas y configuración > Administrador de eventos.
  2. Haga clic en Añadir controlador de eventos.
  3. En el menú Evento seleccione el evento al que desea añadir un controlador.
  4. Seleccione la prioridad de la ejecución del controlador o indique un valor personalizado. Para ello, vaya al menú Prioridad e introduzca el valor deseado.

    Cuando se asignan controladores a un único evento, puede indicar la secuencia de ejecución del controlador ajustando las distintas prioridades (un valor superior corresponde a una prioridad más elevada).

  5. Seleccione el usuario de sistema, en nombre del cual se ejecutará el controlador (usuario "root", por ejemplo).
  6. En el campo Comando, indique el comando a ejecutar en el evento seleccionado. En nuestro ejemplo es /usr/local/psa/bin/test-handler.sh.
  7. Haga clic en ACEPTAR.

Nota: en el script, hemos indicado las variables $NEW_CONTACT_NAME y $NEW_LOGIN_NAME. Durante la ejecución del controlador, estas variables serán reemplazadas por el nombre y el nombre de usuario de la cuenta cliente creada respectivamente. Puede examinar la lista de todas las variables disponibles en el Apéndice C: Parámetros de eventos pasados por controladores de eventos.

Ahora, si usted inicia sesión en su Plesk y crea una cuenta de cliente, especificando el valor 'Algún cliente' en el campo Nombre del contacto y 'algún_cliente' en el campo Inicio de sesión, el controlador será invocado y se añadirán los siguientes registros a /tmp/event_handler.log:

Fri Mar 16 15:57:25 NOVT 2007

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

customer created

nombre: Algún Cliente

Nombre de usuario: algún_cliente

Si desea indicar uno o más controladores, repita la operación para cada uno de los nuevos controladores.