Foros del Web » Programación para mayores de 30 ;) » Bases de Datos General » PostgreSQL »

pg_dump automatico LINUX

Estas en el tema de pg_dump automatico LINUX en el foro de PostgreSQL en Foros del Web. Srs. eh buscado la manera de realizar un backup automático de una base de datos en postgres pero aun no lo consigo. el problema es ...
  #1 (permalink)  
Antiguo 04/05/2009, 09:20
 
Fecha de Ingreso: marzo-2008
Ubicación: Chile
Mensajes: 14
Antigüedad: 16 años, 9 meses
Puntos: 0
pg_dump automatico LINUX

Srs. eh buscado la manera de realizar un backup automático de una base de datos en postgres pero aun no lo consigo.

el problema es que cuando ejecuto el comando pg_dump pide el password del usuario y debo ingresarlo en forma manual, esta opción me descarta hacerlo directamente con un cron.

la otra opción seria programar un archivo con php que haga el exporte, pero como no se mucho de programación estoy desorientado.

¿existe alguna otra opcion?
¿alguien ah hecho esto antes?
¿me puede orientar al respecto?
  #2 (permalink)  
Antiguo 06/05/2009, 04:20
 
Fecha de Ingreso: agosto-2005
Mensajes: 43
Antigüedad: 19 años, 4 meses
Puntos: 1
Respuesta: pg_dump automatico LINUX

Puedes setear las variables PGUSER y PGPASSWORD (usuario de la BD y su pass) y luego correr pg_dump. De esa forma no te pedirá usuario y contraseña:

PGUSER=usuario PGPASSWORD=pass pg_dump -Ft -b -d tu_base_de_datos > backup.tar
  #3 (permalink)  
Antiguo 07/05/2009, 07:50
 
Fecha de Ingreso: marzo-2008
Ubicación: Chile
Mensajes: 14
Antigüedad: 16 años, 9 meses
Puntos: 0
Respuesta: pg_dump automatico LINUX

y donde seteo esas variables?
  #4 (permalink)  
Antiguo 07/05/2009, 09:29
 
Fecha de Ingreso: agosto-2005
Mensajes: 43
Antigüedad: 19 años, 4 meses
Puntos: 1
Respuesta: pg_dump automatico LINUX

Abres un terminal, y escribes:

Código bash:
Ver original
  1. export PGUSER=usuario_de_la_bd
  2. export PGPASSWORD=password
  3. pg_dump -Ft -b -d tu_base_de_datos > backup.tar
  4. unset PGUSER
  5. unset PGPASSWORD

O directamente en un script para correrlo con cron:


Código bash:
Ver original
  1. #!/bin/bash
  2. export PGUSER=usuario_de_la_bd
  3. export PGPASSWORD=password
  4. pg_dump -Ft -b -d tu_base_de_datos > backup.tar

O en una sola linea, como ya te indiqué antes:

Código bash:
Ver original
  1. PGUSER=usuario_de_la_bd PGPASSWORD=password pg_dump -Ft -b -d tu_base_de_datos > backup.tar

Esto creará un dump de la base de datos que especifiques y lo empaquetará con tar.

Ya había quedado bastante claro a mi entender en mi primera respuesta, setear variables es algo básico para crear cualquier script, pero bueno, si tienes más dudas ya dirás.

Saludos.

Última edición por mizuti; 08/05/2009 a las 04:21 Razón: Correcciones - export
  #5 (permalink)  
Antiguo 07/05/2009, 19:55
Avatar de jam1138
/** @package Moderador */
 
Fecha de Ingreso: julio-2004
Ubicación: sèveR led onieR lE
Mensajes: 9.368
Antigüedad: 20 años, 4 meses
Puntos: 102
Respuesta: pg_dump automatico LINUX

Pregunta: ¿no se debería de poder hacer con el usuario postgres?. Algo como:

Código bash:
Ver original
  1. su postgres -c "psql -d tu_base_de_datos'" > archivo.pgdump

claro, esto se debería ejecutar con permisos de root para poder hacer "el cambio de usuario"

pre-gun-to
__________________
٩(͡๏̯͡๏)۶
» Cómo hacer preguntas de manera inteligente «

"100 años después, la revolución no es con armas, es intelectual y digital"
  #6 (permalink)  
Antiguo 08/05/2009, 02:32
 
Fecha de Ingreso: agosto-2005
Mensajes: 43
Antigüedad: 19 años, 4 meses
Puntos: 1
Respuesta: pg_dump automatico LINUX

Cita:
Iniciado por jam1138 Ver Mensaje
Pregunta: ¿no se debería de poder hacer con el usuario postgres?. Algo como:

Código bash:
Ver original
  1. su postgres -c "psql -d tu_base_de_datos'" > archivo.pgdump

claro, esto se debería ejecutar con permisos de root para poder hacer "el cambio de usuario"

pre-gun-to
Eso seria para conectarte con la base de datos, y además te seguiría pidiendo el pass aunque cambies al usuarios postgres. No veo relación a esto con hacer un backup con pgdump.

Iba a incluir un par de enlaces interesantes, pero no me es posible debido a que no llevo suficientes mensajes y me salta el filtro antispam, lo siento.

Por cierto, me colé un poco (lo corrijo arriba también), lo correcto seria:
Código bash:
Ver original
  1. export PGUSER=usuario_de_la_bd
  2. export PGPASSWORD=password
  3. pg_dump -Ft -b -d tu_base_de_datos > backup.tar
  4. unset PGUSER
  5. unset PGPASSWORD

Olvidé el export. Lo del unset, para liberar el contenido de las variables una vez no las necesitemos es opcional.

Saludos!

Última edición por mizuti; 08/05/2009 a las 04:22
  #7 (permalink)  
Antiguo 08/05/2009, 10:00
Avatar de jam1138
/** @package Moderador */
 
Fecha de Ingreso: julio-2004
Ubicación: sèveR led onieR lE
Mensajes: 9.368
Antigüedad: 20 años, 4 meses
Puntos: 102
Respuesta: pg_dump automatico LINUX

Cita:
Iniciado por mizuti Ver Mensaje
Eso seria para conectarte con la base de datos, y además te seguiría pidiendo el pass aunque cambies al usuarios postgres. No veo relación a esto con hacer un backup con pgdump.
Se me cruzaron los cables, lo malo de las "respuestas rápidas".

Pero, como sea, el asunto es que yo veo/veía que el usuario postgres es para PostgreSQL lo que el usuario root es para GNU/Linux. Vaya, con postgres (el usuario) se debería poder hacer el pgdump hacia cualquier base de datos sin importar el propietario ...

¿Por qué razón pediría passport? ...

Igual y pronto me quito de la duda, voy a tener que hacer algo similar .

Cita:
Iniciado por mizuti Ver Mensaje
Iba a incluir un par de enlaces interesantes, pero no me es posible debido a que no llevo suficientes mensajes y me salta el filtro antispam, lo siento.
Puedes hacerlo si no colocas la URL por completo . Osea, puedes poner google.com para que (como ves) no te lo interprete como una URL. Acá solo tendríamos que hacer copy&paste.

Bienvenido mizuti , ojalá se te siga viendo por acá.
__________________
٩(͡๏̯͡๏)۶
» Cómo hacer preguntas de manera inteligente «

"100 años después, la revolución no es con armas, es intelectual y digital"
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 06:30.