Postgres y un nivel mucho mas potente, una gran ayuda para realizar trabajos programados.
Para la instalacion del pgagent, por ejemplo desde Debian, basta con ejecutar: apt-get install pgagent
Un vez en el equipo procedemos a tarea de verdad, su configuracion. Primero tenemos que asegurarnos que tenemos instalado el lenguaje plpgsql:
CREATE TRUSTED PROCEDURAL LANGUAGE 'plpgsql' HANDLER plpgsql_call_handler VALIDATOR plpgsql_validator;
Ahora toca crear los objetos necesarios en la bbdd para poder gestionar estos trabajos, para ello usaremos nuestro interprete de postgres favorito, por ejemplo pgAdmin III, y ejecutaremos sobre dicha base de datos el fichero pgagent.sql situado en:
/usr/share/pgadmin3/pgagent.sql
Un vez llegado a este paso ahora es necesario dejar el pgagent corriendo en forma de demonio, para que pueda realzar los trabajos en cada momento, por ejemplo copiando este script en el /etc/init.d/pgagent
#!/bin/bash # /etc/init.d/pgagent # ### BEGIN INIT INFO # Provides: pgagent # Required-Start: $local_fs $syslog # Required-Stop: $syslog # Default-Start: 2 3 4 5 # Default-Stop: 0 1 6 # Short-Description: Run postgres agent # Description: This file should be used to construct scripts to be # placed in /etc/init.d. ### END INIT INFO #. /etc/init.d/functions . /lib/lsb/init-functions RETVAL=0 prog="PgAgent" start() { log_daemon_msg "Starting pgAgent" "pgagent" if start-stop-daemon --start --quiet --pidfile /var/run/pgagent.pid --exec /usr/bin/pgagent "hostaddr=127.0.0.1 dbname=postgres user=postgres password=XXXXXXX";then log_end_msg 0 RETVAL=$? echo else log_end_msg 1 fi } stop() { log_daemon_msg "Stopping pgAgent" "pgagent" if start-stop-daemon --stop --quiet --oknodo --pidfile /var/run/pgagent.pid; then log_end_msg 0 # RETVAL=$? # echo else log_end_msg 1 fi } # # See how we were called. # case "$1" in start) start ;; stop) stop ;; reload|restart) stop start RETVAL=$? ;; status) status /usr/bin/pgagent RETVAL=$? ;; *) echo $"Usage: $0 {start|stop|restart|reload|status}" exit 1 esac exit $RETVAL
Si no queremos escribir la contraseña de acceso en ese script tambien es posible guardar en el .pgpass del root
Nos aseguramos que sea ejecutable chmod 755 /etc/rc.d/init.d/pgagent
Y lo situamos en el proceso de arranque update-rc.d pgagent defaults
Una recomendacion, borrar la conexion que ya teneis creada en el PgAdmin III y volver a crearla, puede ser que refrescando no muestre la seccion de los trabajos.