Backup PostgreSql por DataBases
Publicado por Wagner Cipriano 03/03/2009
[ Hits: 21.073 ]
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 AUTOMAÇÃO NA CRIAÇÃO DE USUÁRIOS NO AMBIENTE LINUX.
Ver a temperatura da sua cidade via terminal
Sistema de ajuda on-line com interface grafica
Cirurgia para acelerar o openSUSE em HD externo via USB
Void Server como Domain Control
Modo Simples de Baixar e Usar o bash-completion
Monitorando o Preço do Bitcoin ou sua Cripto Favorita em Tempo Real com um Widget Flutuante
Como fazer a conversão binária e aplicar as restrições no Linux
Como quebrar a senha de um servidor Linux Debian
Como bloquear pendrive em uma rede Linux
Um autoinstall.yaml para Ubuntu com foco em quem vai fazer máquina virtual
Instalar GRUB sem archinstall no Arch Linux em UEFI Problemático









