Backup PostgreSql por DataBases
Publicado por Wagner Cipriano 03/03/2009
[ Hits: 21.185 ]
Realizando backup de databases PostgreSQL
---
- Arq de config das bases a fazer backup
Crie um arquivo com o nome "DBs.backup" que armazenará o nome dos bancos de dados a fazer cópias de segurança.
##Conteúdo do arquivo:
Intip helpdesk travele tollbox
O arquivo contém o nome de cada banco de dados separado por um espaço. Cada banco de dados citado no arquivo será ser incluído na lista de bancos de dados a realizar o backup periódico na nossa rotina.
#!/bin/bash
# Autor: Wagner Cipriano GnãOB <wagner@intip.com.br> #
# * DataBases PostgreSql #
# Para incluir novos bancos de dados no backup editar o arquivo #
# './DBs.backup' colocando espaco entre os nomes. #
# #
# Copie a vontade, mantenha o autoria original #
################################################
PATH=/usr/sbin:/usr/local/bin:/usr/bin:/bin
export PATH
inicio="`date +%Y-%m-%d_%H:%M:%S`"
#@ Variaveis
EMAIL="wagnao@gmail.com"
DIR=/backup/data
ERRORLOG="$DIR/error.log"
ERROR=0;
PGUser="postgres"
PGPort="5432"
#@ Pega a lista de databases a "bk_piar" no arq de configuracao
DATABASES=(`cat ./DBs.backup`)
if [ "$?" -ne 0 ]; then
echo "ERRO: arquivo de configuracao dos DataBases nao encontrado: 'DBs.backup'";
ERROR=1;
fi
#@ Para cada database da lista, executa o dump e compacta
DIR=/backup/data/pgsql
cd $DIR
for((i=0; i < ${#DATABASES[@]}; i++))
do
echo ">>> dump DB ${DATABASES[$i]}"
pg_dump -p $PGPort -U $PGUser -C -f ./db${DATABASES[$i]}.bkp ${DATABASES[$i]} 2> $ERRORLOG
if [ "$?" -ne 0 ]; then
echo "ERRO ao gerar dump DB $i: '${DATABASES[$i]}'";
ERROR=1;
fi
echo ">>> compactando dump do DB ${DATABASES[$i]}"
tar -cvzf db${DATABASES[$i]}-`date +"%y%m%d"`.tgz ./db${DATABASES[$i]}.bkp 2>> $ERRORLOG
if [ "$?" -ne 0 ]; then
echo "ERRO ao compactar DUMP do DB $i: '${DATABASES[$i]}'";
ERROR=1;
fi
done
cd $DIR
#@ Apaga os arquivos de backup e mantem apenas os arquivos compactador
rm ./*.bkp
#@ limpa os arquivos antigos, mantendo os ultimos 5 dias
find $DIR/ -name "*.tgz" -mtime +5 -type f -exec rm -f {} \;
#@ Envia email de confirmacao
echo ">>> envio de email de comfirmacao para $EMAIL"
if [ "$ERROR" -eq 1 ]; then
cat $ERRORLOG | mail $EMAIL -s "web-master Intip: Erro no backup `date`";
else
echo "Backup local web-master Intip gerado com sucesso em `date`" | mail $EMAIL -s "web-master Intip: backup ok em `date`"
fi
echo "Rotina inciou em: $inicio"
echo "Rotina terminou em: `date +%Y-%m-%d_%H:%M:%S`"
Script para redimensionar/reduzir fotos digitais
Montar e desmontar ISOs do Debian e adicionar CD/DVDs ao repositório
Mostrando informações sobre o sistema
O Journal no Linux para a guarda e consulta de logs do sistema
A evolução do Linux e as mudanças que se fazem necessárias desde o seu lançamento
Maquina modesta - a vez dos navegadores ferrarem o usuario
Fscrypt: protegendo arquivos do seu usuário sem a lentidão padrão de criptograr o disco
Sway no Arch Linux: configuração Inicial sem enrolação
Resolvendo o bloqueio do Módulo Warsaw no Arch Linux (Porta 30900)
Continuando meus tópicos anteriores (1)
Saída de loop após teste de if. (2)
Governo da França vai trocar Windows por Linux (9)
Warsaw não é reconhecido no Google Chrome 147.0.7727.55 [RESOLVIDO] (9)









