Gerar backup do MySQL ou Postgres
Publicado por eli marques junior (última atualização em 11/10/2013)
[ Hits: 11.261 ]
Download backup-bd-rotate.tar.gz
Script para gerar backup do MySQL ou Postgres.
Nele você pode definir quantos dias você quer guardar os backups e os logs.
Extraia ele no / (raiz) e ele irá criar o diretório /var/bkp-banco-tsm.
Qualquer coisa renomeie o diretório para o nome desejado e altere no script.
!/bin/bash
#================================================================================#
#Autor: ELI MARQUES JUNIOR #
#Email: eli.marquesjunior@gmail.com #
#Empresa: TM Solutions #
#Lotacao: GITECBR #
#Descricao: Gerar dump das bases de dados do PostgreSQL ou MySQL #
#================================================================================#
. /etc/profile
dir_local=/var/bkp-banco-tsm
dir_do_BKP=dump_bd
cd $dir_local/$dir_do_BKP
#==================================================================================
database=""
usuario=""
#Set a variavel abaixo caso utilize POSTGRES com senha
export PGPASSWORD=""
#Set a variavel abaixo caso utilize MYSQL com senha
senha=""
#==================================================================================
data_atual=`date +%s`
arquivo_gerado="$database-$data_atual.sql"
dir_bkp=bkp-SQL
dir_LOG=LOG
#LOG DE QUANDO DA CERTO
log_TRUST="$database"_"$data_atual".LOG
log_dump=$dir_LOG/$log_TRUST
#LOG QUANDO DA ERRO
errorLOG=error-"$database"_"$data_atual".LOG
LOG_ERROR=$dir_LOG/$errorLOG
#==================================================================================
#QUANTIDADE DE DIAS PARA MANTER OS LOGs
dias=4
guarda_Ndias=$(($data_atual -(${dias} * 86400)))
function gera_BKP()
{
mv $dir_bkp/$database-* dias_anteriores/
######## DUMP PARA O MYSQL
#mysqldump -u $usuario -p$senha -B $database > $dir_bkp/$arquivo_gerado 2> $LOG_ERROR
######## DUMP PARA O POSTGRES
pg_dump -Fc -b -U $usuario $database -f $dir_bkp/$arquivo_gerado 2> $LOG_ERROR
######## DUMP PARA O POSTGRES com SENHA
######## OPCAO ABORTADA POIS QUANDO COLOCAVA NO CRONTAB NAO FUNCIONAVA
# /usr/bin/expect -c "
# spawn /opt/postgres/9.1/bin/pg_dump -Fc -b -U $usuario -W $database -f $dir_bkp/$arquivo_gerado
# expect "Password:"
# send $senha
# send \r
# interact
# " > $log_dump 2>&1
######Parte comentada para o DUMP PARA O POSTGRESS
if [ $? -eq 0 ]
then
echo "==================================================================================================================================" >> $log_dump
echo "O backup do banco \"$database\" foi gerado em $(date +%d-%m-%y) e foi salvo no diretorio \"$dir_bkp/$arquivo_gerado\"" >> $log_dump
echo "==================================================================================================================================" >> $log_dump
else
rm -f $dir_bkp/$arquivo_gerado
echo "=========================================================================================" >> $log_dump
echo "Nao foi gerado o backup do banco \"$database\" no dia $(date +%d-%m-%y)" >> $log_dump
echo "Verifique o arquivo \"$LOG_ERROR\" para saber o motivo" >> $log_dump
echo "=========================================================================================" >> $log_dump
fi
}
function limpa_LOG ()
{
cd $dir_LOG
for x in $(ls)
do
local data=$(echo $x | cut -d "." -f1 | cut -d "_" -f2)
if [ $data -le $guarda_Ndias ]
then
# echo $data = $guarda_Ndias
rm -f $x
else
echo Arquivo recente
# echo data do arquivo $data \> $guarda_Ndias data atual
fi
done
}
function limpa_BANCO ()
{
cd ../dias_anteriores
for x in $(ls)
do
local data=$(echo $x | cut -d "." -f1 | cut -d "-" -f2)
if [ $data -le $guarda_Ndias ]
then
# echo $data = $guarda_Ndias
rm -f $x
else
echo BKP do banco $database recente
#echo data do arquivo $data \> $guarda_Ndias data atual
fi
done
}
gera_BKP
limpa_LOG
limpa_BANCO
unset PGPASSWORD
Localizando tentativas de invasão
Enviar mensagem para os terminais ltsp
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
Atualizar Linux Mint 22.2 para 22.3 beta
Jogar games da Battle.net no Linux com Faugus Launcher
Como fazer a Instalação de aplicativos para acesso remoto ao Linux
Conky, alerta de temperatura alta (10)
Assisti Avatar 3: Fogo e Cinzas (3)
Duas Pasta Pessoal Aparecendo no Ubuntu 24.04.3 LTS (42)









