Backup Base de Dados PostgreSQL [pg_dump]

Publicado por Emiliano Eloi Silva Barbosa 16/04/2007

[ Hits: 30.458 ]

Homepage: http://emilianoeloi.com.br

Download pgbackup.sh




Esse script gera backup de bases de dados PostGreSQL usando o pg_dump baseado em 'inúmeras variáveis' que informam o destino do backup e o nome do arquivo, etc.

  



Esconder código-fonte

#!/bin/sh
# cript que gera backup de bases de dados PostGreSQL
# Referência: http://www.htmlstaff.org/postgresqlmanual/app-pgdump.html
# Emiliano ESB<emilianoeloi@gmail.com>
# C 2005 04 20
# R 2007 04 11[adaptado para o VOL]
#
# VARIAVEIS ##################
vU="postgres"     # Usuario no PostGreSQL
vP="pgsql"        # Senha
vB=$1             # Base De dados
vBI="/usr/local/pgsql/bin/" # Diretorio raiz dos binarios do PostGreSQL
vR="/BackupSuporte/"        # Diretorio raiz
vD="BasesDeDados/"          # Destino do Backup
vPre="basePGSQL"            # Prefixo no nome do arquivo de saida
vE=".dmp"                   # extencao do arquivo de saida
vH="localhost"              # Host do servidor
vAno=`date +%Y` #Ano
vMes=`date +%m` #Mes
vDia=`date +%d` #Dia
vHor=`date +%H` #Hora
vMin=`date +%M` #Min
vCod=`date +%N` #Código date [date (GNU coreutils) 5.3.0]
vDat="$vAno$vMes$vDia-$vHor$vMin-$vCod"
vA=$vPre"-"$vB"-"$vDat$vE
# VALIDAÇÃO ##################
if [ -z $vU ]; then
        echo "Sem usuário";
        exit 0;
fi
if [ -z $vP ]; then
        echo "sem senha";
        exit 0;
fi
if [ -z $vB ]; then
        echo "informe o nome da base de dados";
        exit 0;
fi
# BACKUP #####################
echo "# Gerando backup. Aguarde..."
echo "# Destino: $vR$vD"
echo "# Nome do arquivo: $vA"
$vBI""pg_dump -U $vU -h $vH --format=c --file=$vR$vD$vA $vB

Scripts recomendados

Linkar libs do Boost 1.74.0 para 1.73.0 no Slackware Current

Trocar wallpaper (papel de parede) do Gnome

Firewall iptables

Script para listar tentativas de acessos

Script para rotacionar logs dos sites no Apache


  

Comentários
[1] Comentário enviado por augustomarinho em 22/04/2007 - 16:02h

O script de backup realmente é muito bom. Gostaria de fazer uma contribuição, pois no ambiente que tenho montado aqui em casa quem comanda a execução do PostgreSQL é o usuário postgres, inclusive as permissões do diretórios data onde encontram-se os dados pertence a este mesmo usuário. Com isso, para executar o comando pg_dump se faz necessário estar com as permissões deste usuário, e pode ser feito com sudo -u postgres pg_dump ...... e o restante.

Se este script for colocado no cron, para fazer o backup de forma automática, na minha opnião, é importante levar em consideração esta observação.

[2] Comentário enviado por crfjunior em 09/10/2012 - 15:21h

como faço pra omitir a solicitação de senha no script?

[3] Comentário enviado por Ends em 11/10/2013 - 01:26h

Olá...
Interessante o script, porém para agendar no CRON, é necessário que o script não gere saída na tela.
E vi que este script gera algumas saídas na tela. Como você faz para agendar no CRON da forma como se apresenta o script?

Abaixo o script que utilizo, claro que mais simples... não consigo agendar no CRON com ele.

PGPASSWORD=senha_do_banco
export PGPASSWORD

date=$(date '+%d-%m-%Y')

/usr/lib/postgresql/9.1/bin/pg_dump --host localhost --port 5525 --username postgres --format tar --blobs --encoding LATIN1 --verbose --file /opt/backup_sistema/sistema_erp-$date.backup nome_do_banco




Contribuir com comentário




Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts