Usando event_handler en Plesk

Entre las virtudes que he de rescatar de Plesk con respecto a los otros Paneles de Control es que la mayoria, y si no es que todas, las tareas de administración se pueden realizar tanto desde la interfaz Web o desde la linea de comandos.

Entre los comandos no muy documentados esta el "event_handler" que nos permite, desde linea de comando, ejecutar nuestros script después de algunos de los eventos predefinidos en Plesk se llevan a cabo.

De esta forma es que podemos crear directorios especiales después de crear una cuenta de correo, cambiar permisos de directorios después de crear un dominio o hasta generar un aviso que se llevo a cabo una tarea de administración.

Para poder listar las tareas ya definidas:
/usr/local/psa/bin/event_handler -l
/usr/local/psa/bin/event_handler --list

y nos vamos a encontrar con una salida como la siguiente:
Id: 2
Name: Service stopped
Priority: 0
User: root
Command: /usr/local/psa/admin/bin/modules/watchdog/wd --unmonit-service=<new_service> --plesk-name
Este es un ejemplo de una tarea que se debe realizar cada vez que se detiene un servicio, y para ser precisos es del modulo Watchdog para que este deje de monitorear un servicio si el mismo se ha detenido.

El evento "Service stopped" es uno de los mas de 100 eventos que ya vienen predefinidos por Plesk, y cada uno de ellos tiene un código único y para poder listarlos usaremos el comando:
/usr/local/psa/bin/event_handler -le
/usr/local/psa/bin/event_handler --list-events

Creando una tarea

Para crear tarea usaremos la opción "-c" o "--create" pasándole algunos argumentos mas, como por ejemplo:

/usr/local/psa/bin/event_handler -c -priority 10 -user root -command "/usr/local/propios/procmail_spam.sh <new_mailname>" -event 52
Con esto estaremos creando una comando nuevo (opción "-c" para crear y "-command" para especificar que comando a ejecutar) que se debe ejecutar cada vez que se cree un nuevo usuario ("-event 52" es "Mail account created" ).

Con este comando también estamos especificando con que usuario se debe ejecutar ese comando, que en nuestro caso es el usuario "root" ( "-user root" ). Para poder ver el listado usuarios que pueden realizar alguna de las tareas programadas:
/usr/local/psa/bin/event_handler -lu
/usr/local/psa/bin/event_handler --list-users
Si vamos a ejecutar varias tareas o comandos en base a un evento, es donde entra en juego las prioridad ( en este ejemplo "-priority 10" ) que es un valor entero que va desde 0 a 100, siendo los comandos con prioridad mas baja los que se van a ejecutar primero.

Cada uno de los eventos maneja variables propias relacionadas con el evento que se esta llevando a cabo, estas variables se puede pasar a los comandos que vamos a ejecutar. En nuestro ejemplo el evento es la creación de un nuevo buzón de correo y la única variable que tiene este evento es "<new_mailname>".

Sobre las variables de cada uno de los eventos, no he encontrado mucha información oficial, mas que un viejo manual en linea de Plesk 8.3 aunque también sirven para las versiones de Plesk 8.6 y 9.2

Modificando una tarea ya existente

Para modificar o eliminar una tarea existente usaremos las opciones "-d" o "-u" para eliminar o borrar una tarea e indicando el identificador de la misma. De esta forma para eliminar una tarea podríamos usar los comandos:

/usr/local/psa/bin/event_handler -d 2
/usr/local/psa/bin/event_handler --delete 2
O para cambiarle la prioridad usaremos:
/usr/local/psa/bin/event_handler --u 2 -priority 10
/usr/local/psa/bin/event_handler --update 2 -priority 10

0 comentarios: