[Previo por Fecha] [Siguiente por Fecha] [Previo por Hilo] [Siguiente por Hilo]
[Hilos de Discusión] [Fecha] [Tema] [Autor]Quizas lo que te adjunto te sirva. -- Jesus Aneiros Sosa mailto:aneiros en jagua cfg sld cu http://jagua.cfg.sld.cu/~aneiros On Thu, 24 Aug 2000, Roberto Leal Guerra wrote: > > Que tal amigos, tengo una aplicación corriendo con apache + php + > postgresql bajo linux, y ya es justo que programe respaldo de la base de > datos, como le puedo hacer para que todos los dias me genere un respaldo y > me lo guarde en un directorio predefinido por mi. > > Se que tengo que usar el cron y el pg_dump, pero no se como. > > Gracias por su tiempo > > Saludos > > Ing. Roberto Leal Guerra > Tel. (8) 345-5100 ext. 2972 > email: rleal en elnorte com mx > > --------- Pie de mensaje ------------------------------------------- > Archivo historico: http://tlali.iztacala.unam.mx/maillist/pgsql-ayuda > Cancelar inscripcion: > mail to: majordomo en tlali iztacala unam mx > text : unsubscribe pgsql-ayuda >
#!/usr/bin/perl
# Programa para salvar todas las bases de datos PostgreSQL de un usario
# Creado por Jesus Aneiros aneiros en jagua cfg sld cu
# 2000.07.25
#
# Es obligatorio definir la variable $user (usuario propietario de las BD)
# y la variable $pathbase (directorio donde se salvaran)
# El directorio donde apunte pathbase debe existir y tener permisos de escritura
use DBI;
use strict;
# Nombre del usuario al cual se le salvaran las BD
my $user = 'aneiros';
# Directorio donde se salvaran las BD
my $pathbase = '/home/aneiros/salva_bd';
# Conectarse a postgreSQL
my $dbh = DBI->connect("dbi:Pg:dbname=$user", "", "") || die DBI::errstr;
# Consulta para obtener las BD de ese usuario
my $query = "SELECT datname FROM pg_database WHERE datdba = (SELECT usesysid FROM pg_user WHERE usename = ?)";
my $sth = $dbh->prepare($query) || die $dbh->errstr;
$sth->execute($user) || die $dbh->errstr;
my $bdname; # Nombre de la base de datos
my $rv = $sth->bind_columns(\$bdname) || die $sth->errstr;
while ( $sth->fetch ) {
print "Salvando $bdname...\n";
system("pg_dump $bdname > $pathbase/$bdname.bak");
}
$sth->finish;
$dbh->disconnect;