Backup PostgreSql por DataBases
Publicado por Wagner Cipriano 03/03/2009
[ Hits: 20.699 ]
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`"
Algoritmo para saber o maior e menor valor
Script que agrupa e compacta os executáveis de um diretório
Adiciona usuário e máquinas PDC samba
Compartilhando a tela do Computador no Celular via Deskreen
Como Configurar um Túnel SSH Reverso para Acessar Sua Máquina Local a Partir de uma Máquina Remota
Configuração para desligamento automatizado de Computadores em um Ambiente Comercial
Como renomear arquivos de letras maiúsculas para minúsculas
Imprimindo no formato livreto no Linux
Vim - incrementando números em substituição
Efeito "livro" em arquivos PDF
Como resolver o erro no CUPS: Unable to get list of printer drivers
Não to conseguindo resolver este problemas ao instalar o playonelinux (1)
Excluir banco de dados no xampp (1)
[Python] Automação de scan de vulnerabilidades
[Python] Script para analise de superficie de ataque
[Shell Script] Novo script para redimensionar, rotacionar, converter e espelhar arquivos de imagem
[Shell Script] Iniciador de DOOM (DSDA-DOOM, Doom Retro ou Woof!)
[Shell Script] Script para adicionar bordas às imagens de uma pasta