Algunas acciones en Plesk, como por ejemplo:

  • Creación de una cuenta de cliente
  • Eliminación de una dirección IP
  • Actualización de la configuración de hosting de un dominio, entre otras

son reconocidas por Plesk como eventos. Para cada evento puede crear uno o más controladores de eventos que ejecuten un comando predeterminado cada vez que acontezca el evento.

Los controladores de eventos resultan útiles si desea que cada vez que acontezca un evento concreto se lleve a cabo una acción determinada o varias acciones. Por ejemplo, puede crear un controlador de eventos que se ejecute cada vez que se cree una suscripción y configurarlo para que cree un buzón de forma automática y envíe una petición a un servicio externo, etc.

Adición de controladores de eventos

  1. Vaya a Herramientas y configuración > Administrador de eventos.

  2. Haga clic en  Añadir controlador de eventos.

  3. En la lista «Evento», seleccione el evento que desencadenará el controlador.

  4. Debajo de «Prioridad», establezca la prioridad de ejecución del controlador seleccionándola en la lista o indicando un número en el campo. La prioridad deviene importante si asigna varios controladores a un único evento. En este caso, los controladores se desencadenan en función de su prioridad en orden descendente. Es decir, primero el evento desencadena el controlador con mayor prioridad, posteriormente el que presente la segunda prioridad más importante, etc.

  5. En la lista «Usuario», seleccione el usuario de sistema en cuyo nombre se ejecutará el controlador.

    Nota: El administrador del servidor puede crear los controladores de eventos que se ejecutarán en el servidor en nombre del usuario root. Si desea restringir el uso de la cuenta root, cree un archivo vacío denominado  root.event_handler.lock en /usr/local/psa/var/.

  6. Indique la ruta al script shell o a un archivo .bat que contenga los comandos a ejecutar cuando el controlador de eventos desencadene en el campo «Comando»  (por ejemplo, /usr/local/psa/bin/script.sh o C:\Windows\Temp\script.bat).

    Nota: Compruebe que su script disponga del permiso de ejecución. Para concedérselo, ejecute el comando chmod 755 <script.sh>

  7. Haga clic en  ACEPTAR.

¿Qué parámetros pasa el evento?

Cuando se desencadena un controlador de eventos, este pasa determinados datos («Parámetros de evento») asociados con el evento (los datos que se pasan varían en función del controlador de eventos en cuestión). Por ejemplo, el controlador de eventos «Domain created» pasa los siguientes parámetros:

  • El nombre del dominio nuevo creado.
  • El GUID del dominio nuevo creado.
  • El GUID de la cuenta de cliente que posee el dominio nuevo creado.

Cada parámetros se pasa como una variable de entorno que puede usar en su script shell o en el archivo .bat de la siguiente forma:

Plesk para Linux

Use el marcador de posición ${ENVIRONMENT_VARIABLE_NAME} (por ejemplo, «${NEW_DOMAIN_NAME}») en su script shell. Cuando se desencadena el controlador de eventos, el marcador será reemplazado por el valor correspondiente al evento.

Plesk para Windows

Use el marcador de posición %N (por ejemplo, «%1») en su archivo .bat y añada el nombre de la variable de entorno deseada en la posición correspondiente al final del comando en la configuración del controlador de eventos. En el siguiente ejemplo

image 78436

el marcador «%1» se reemplazará por el valor de la variable de entorno «NEW_DOMAIN_NAME» y «%2» se reemplazará por el valor de «NEW_DOMAIN_GUID». Si usa «%3» en el archivo .bat, este no será reemplazado por nada, puesto que tras el comando sólo se especificaron dos nombres de variable de entorno.

Si desea ver la lista completa de parámetros de evento y los nombres de las variables de entorno asociadas para cada controlador de eventos, haga clic aquí.

A continuación le mostramos dos ejemplos de script del evento ‘Customer account created’:

  • (Plesk para 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 para 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
    

Si accede a Plesk y crea una cuenta de cliente denominada «John Doe» con el nombre de usuario “john_doe”, se desencadenará el controlador de eventos y se añadirán los siguientes registros al archivo  event_handler.log:

  • (Plesk para 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 para Windows)

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

Edición y eliminación de controladores de eventos

Si desea ver la lista de controladores de eventos activos en este momento, haga clic en Herramientas y configuración > Administrador de eventos. Aquí también puede editar y eliminar controladores de eventos:

  • Para editar un controlador de eventos, haga clic en su nombre, lleve a cabo los cambios deseados y haga clic en ACEPTAR.
  • Para eliminar un controlador de eventos, seleccione la casilla correspondiente y haga clic en Eliminar.