Backup PostgreSql por DataBases
Publicado por Wagner Cipriano 03/03/2009
[ Hits: 21.009 ]
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`"
MACGEN V1.0 MAC Address Generator
Excluir Arq. Velhos de um Diretório ATUALIZADO!
Não consigo executar função, usando Script
IA Turbina o Desktop Linux enquanto distros renovam forças
Como extrair chaves TOTP 2FA a partir de QRCODE (Google Authenticator)
Linux em 2025: Segurança prática para o usuário
Desktop Linux em alta: novos apps, distros e privacidade marcam o sábado
Atualizando o Fedora 42 para 43
Como saber se o seu e-mail já teve a senha vazada?
Como descobrir se a sua senha já foi vazada na internet?
E aí? O Warsaw já está funcionando no Debian 13? [RESOLVIDO] (15)
Secure boot, artigo interessante, nada técnico. (4)
copiar library para diretorio /usr/share/..... su com Falha na a... (1)









