Gente, novamente venho a contribuir um pouquinho, com algum pouco conhecimento que tenho sobre Linux e PostgreSQL. Neste script(Linux), do qual dou o nome de "backup.postgres.sh", faço o backup do banco pg, levando em conta:
1º A existência da pasta para receber o arquivo(mkdir -p);
2º Uma analise, e ao mesmo tempo, a exclusão dos arquivos a mais de 3 dias(find);
3º O backup propriamente dito(pg_dump);
4º Por final, o vacuum para limpar e organizar e com isto agilizar o banco para o dia seguinte(vacuum).
#Scritp responsável pela cópia do banco de dados PostgreSQL
#Autor: Marcos Andre G.A
#Data1: 02/04/2012
#1º Mensagem que mostra na tela a data e hora de início do backup.
DATA=`date +%Y%m%d`
HORA=`date +%H%M`
echo "+++ ."
echo "+++ Data/Hora do inicio da copia. "$DATA $HORA
echo "+++ ."
#2º Criando, caso não exista, "mkdir -p" a pasta para receber o banco.
mkdir -p /opt/backups/base_de_dados/
#3º Procedimento de limpeza dos backups com data a mais de 3 dias.
echo "+++ Executando limpeza das copias dos bancos de dados a mais de 3 dias"
find /opt/backups/base_de_dados/ -name 'Trabin*' -ctime +3 -exec rm -fv {} \;
#4º Procedimento que gera cópia do bando de dados.
echo "+++ Gerando copia do banco. Aguarde..."
pg_dump -Fc -Z9 -U postgres -h localhost -f /opt/backups/base_de_dados//Nome_do_Banco_$DATA$HORA.bkp "Nome_do_Banco"
echo "+++ Nome_do_Banco copiado!"
#5º Neste ponto, gero um vacuum. Abaixo, a lista dos parâmetros possíveis.
echo " "
echo "+++ Gerando o vacuum do banco, Aguarde..."
#-a : passa em todos bancos de dados;
#-d base : para escolher o banco de dados;
#-f : vacuum full;
#-z - vacuum analyze;
#-v : verbose;
#-h : servidor remoto postgres;
#-U : login do usuarioo do banco.
vacuumdb -d "Nome_do_Banco" -U postgres -q -z
#echo "+++ Vacuum - TrabinBase ok"
Opa!!! muito bom teu script.... vou pegar a parte de eleminar backup com mais de 3 dias....
ResponderExcluirMuito bom....
Parabéns..