Backup PostgreSql por DataBases
Publicado por Wagner Cipriano 03/03/2009
[ Hits: 20.829 ]
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`"
Converter rmvb em mpeg com Shell + Yad
Atualiza o sistema e instala pacotes no sistema
Abre e fecha o Drive de Cd-Rom
Como gerar qualquer emoji ou símbolo unicode a partir do seu teclado
Instalar e Configurar o Slackware Linux em 2025
Como configurar os repositórios do apt no Debian 12 em 2025
Passkeys: A Evolução da Autenticação Digital
Instalação de distro Linux em computadores, netbooks, etc, em rede com o Clonezilla
Muitas dificuldades ao instalar distro Linux em Notebook Sony Vaio PCG-6131L (VPCEA24FM)
Slackpkg+ (Slackpkg Plus) está de volta!
Como dividir duas janelas igualmente e lado-a-lado na sua tela
Configurando o Conky para iniciar corretamente no sistema
3 configurações básicas que podem melhorar muito a sua edição pelo editor nano
Minha rede tem um espaço invisível que não dá pra digitar o nome da re... (1)
Pedagogia no brasil não passa de alfabetização por m4sturbação mental ... (2)
compilação samba 4.22 rock linux 9.5 (3)
Erro de segmentação «Segmentation fault (core dumped)» ao retornar obj... (7)