Não tem coisa mais chata do que ficar fazendo backup. Mas o Linux nos dá um poder muito grande com seus scripts e agendamento de tarefas através do cron. No meu ambiente de trabalho, tenho um servidor de banco de dados que tem vários bancos. Se eu usar o pd_dumpall vou estar fazendo o backup de todos os bancos, mas não terei como restaurar apenas um banco caso eu precise. Para isso, criei um script que faz o backup individual dos bancos.
Para compactar, estou utilizando o bzip2. Apesar de levar mais tempo para compactar, o banco de dados compactado com gzip que fica com 1,7GB, passou para 1,2GB com bzip2. Se o backup puder rodar na madrugada como é o meu caso, então não terá problemas de perda de desempenho do servidor, pois ele consome mais processamento do que disco.
Vou colocar todo o código e vou explicando linha a linha para facilitar o entendimento. Coloque as linhas abaixo em um arquivo e torne-o executável (chmod 700 seuarquivo.sh).
### Data do backup data=`date +%Y_%m_%d` ### Apaga os mais antigos, vamos apagar o que tiver mais de 15 dias, ### mantendo o espaço do disco TIME="+15" find $dire -type f -mtime $TIME | xargs rm -rf ### Lista de banco de dados para backup individual. Deve ser separado por espaço BANCO="financeiro contabil vendas" ### Loop para fazer o backup individual for banco in `echo $BANCO` do ### Caminho completo e Nome do arquivo de backup arq="$dire$banco$data.sql" ### Fazendo o backup do banco /usr/local/pgsql/bin/pg_dump "$banco" > $arq ### Compacta o arquivo com tar e bzip2 para obter compactacao maxima tar -cf $arq.tar $arq bzip2 $arq.tar ### A compactacao nao apaga o original, vamos apagar manualmente rm -f $arq done ### finaliza exit 0
Feito isso, basta agendar no cron e ser feliz. Apenas acompanhe para ter certeza que seu disco não irá encher, nesse caso, diminua a quantidade de dias de backup que você irá guardar alterando a variável TIME.
Nenhum comentário:
Postar um comentário