alexlavalle
(usa Debian)
Enviado em 30/10/2013 - 12:22h
Bom como prometido, segue abaixo todo o script inclusive comentado e implementado.
Eu acredito que poderia melhorar mais ainda, inclusive tb, criar arquivo de log por data (que nao sie fazer rs), para estar sempre verificando se deu algum problema no script geral.
Aguardo comentários,
#!/bin/bash
# modifique-o de acordo com sua necessidade.
# Define data atual
datatual=$(date +%d-%m-%Y)
# Define o diretorio do qual sera feito o backup:
dirbase=/home/webprev/bkp
# Define o diretorio de backup:
dirbak="$dirbase"/"$datatual"
# Cria o diretorio de backup caso ele nao exista
mkdir -p "$dirbak"
# realiza o backup das bases de dados postgresql
/usr/bin/pg_dumpall --host localhost --port 5432 --username postgres > /home/webprev/bkp/webprev_backup$(date +%Y%m%d_%H-%M-%S).backup
#entrando na pasta /home/webprev/bkp para comecar a compactar o backup
cd /home/webprev/bkp
# compacta os arquivos com extensao .tar incluindo a data atual
tar -zcvf webprev_bkp$(date +%Y%m%d_%H-%M-%S).tar webprev_backup20*
# move os arquivos compactados data atual para o diretorio data atual
mv /home/webprev/bkp/webprev_bkp`date +%Y%m%d_`*.tar /home/webprev/bkp/`date +%d-%m-%Y`
#removendo o backup original
rm -rf /home/webprev/bkp/webprev_backup20*
if [ $? -eq 0 ]; then
echo "Arquivo webprev_bkp`date +%Y%m%d`*.tar movido com sucesso para a pasta `date +%d-%m-%Y`"
else
echo "Erro ao mover a(s) pasta(s), vide permissoes.."
fi
# realiza a transferência de origem para destino (processo + lento do que o rsync)
#scp /home/webprev/bkp/`date +%d-%m-%Y`/*.tar root@xxx.xxx.xxx.xxx:/home/webprev/bkp/`date +%d-%m-%Y`
# faz a sincronização com incrementação processo mais rapido, pois só transfere o que nao existe no destino
rsync -Cravzp /home/webprev/bkp/`date +%d-%m-%Y`/ root@xxx.xxx.xxx.xxx:/home/webprev/bkp/`date +%d-%m-%Y`/
Abraços a todos
Alex