Backup PostgreSql por DataBases
Publicado por Wagner Cipriano 03/03/2009
[ Hits: 20.727 ]
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`"
Atualizar o sistema através de Shell Script (Debian, Ubuntu e devidados)
Script para reconhecer MP4Player no Ubuntu
Teste de hosts ativos em uma rede
Enviar mensagem ao usuário trabalhando com as opções do php.ini
Meu Fork do Plugin de Integração do CVS para o KDevelop
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
Compartilhamento de Rede com samba em modo Público/Anônimo de forma simples, rápido e fácil
Cups: Mapear/listar todas as impressoras de outro Servidor CUPS de forma rápida e fácil
Criando uma VPC na AWS via CLI
Linux não é para todo mundo (8)
Problemas ao instalar o PHP (4)
PENDRIVE NÃO FORMATA DE JEITO NENHUM (1)