Written by: thempra on 20/10/2010 @ 12:22
PgAgent, dicho en palabras llanas, es como un «cron» pero de forma especifica para bases de datos 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.
Catogories: GNU/Linux, postgres, Servidores
[…] PgAgent, instalación y configuración PgAgent, dicho en palabras llanas, es como un “cron” pero de forma especifica para bases de datos 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 […]…(read more) […]
Que bueno era justo la informacion que estaba buscando…
pero tengo una duda.. en la parte de »
chmod 755 /etc/rc.d/init.d/pgagent» no se supone que tendria que ser.. «chmod 755 /etc/init.d/pgagent»
Si el backup lo realiza de manera local pero cuando quiero hacer un backup en un map newtwork no lo hace