Backup PostgreSql por DataBases
Publicado por Wagner Cipriano 03/03/2009
[ Hits: 20.928 ]
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 de iniciação do servidor Nagios no Slack
Algoritmo para saber qual o maior número dentro de uma Array
Comparação entre os escalonadores BFQ e MQ-Deadline (acesso a disco) no Arch e Debian
Conciliando o uso da ZRAM e SWAP em disco na sua máquina
Servidor de Backup com Ubuntu Server 24.04 LTS, RAID e Duplicati (Dell PowerEdge T420)
Visualizar câmeras IP ONVIF no Linux sem necessidade de instalar aplicativos
Converter os repositórios Debian para o novo formato com as chaves
Instalando Spotify no Debian 13
Realizar overclock no Miyoo Mini (plus ou normal)
linux mint reconhece microfone de lapela como fone de ouvido sem micro... (5)
E aí? O Warsaw já está funcionando no Debian 13? (2)
Dúvidas sobre a originalidade de conteúdos online (12)