IMPORTANTE:
Ajustar a variável $opt_path para onde ficam os backups dos seus servidores, ou seja o seu 'barman_home = /backup/vtl-backups' no 'barman.conf'.
---
#!/usr/bin/perl -w
# Rotate barman agent
# Author: Gabriel Prestes(LM2)
# Date: 21/09/2012
use File::stat;
use Time::Local;
($opt_db, $opt_ret, $opt_type) = @ARGV;
if($#ARGV<2){ print "Need args!\n"; exit(1);}
$opt_path="/backup/vtl-backups/$opt_db/$opt_type";
$opt_retinsec=($opt_ret*3600)*24;
print "|RETENTION POLICY - $opt_db - $opt_ret days - $opt_type |\n";
my @ls=`\$\(which ls\) -td $opt_path/*`;
foreach(@ls){
chomp($_);
if(($opt_type =~ "wals") and ($_ !~ "xlog.db")){
$mtime=stat($_)->mtime;
$timenow = timelocal(localtime());
$tempo=$timenow-$mtime;
$mtimereal=localtime($mtime);
if($tempo>=$opt_retinsec){
$rm=`\$\(which rm\) -rf $_`;
print "WALS REMOVED : $_ - $mtimereal\n";
} else{
print "WALS PRESERVED : $_ - $mtimereal\n";
}
}
if($opt_type =~ "base"){
$mtime=stat($_)->mtime;
$timenow = timelocal(localtime());
$tempo=$timenow-$mtime;
$mtimereal=localtime($mtime);
if($tempo>=$opt_retinsec){
$rm=`\$\(which rm\) -rf $_`;
print "BACKUP REMOVED : $_ - $mtimereal\n";
} else{
print "BACKUP PRESERVED : $_ - $mtimereal\n";
}
}
}
exit(0);
---
Coloque depois no /etc/cron.d/barman o seguinte conteúdo:
# m h dom mon dow user command
0 */4 * * * barman [ -x /usr/bin/barman ] && /usr/bin/barman -q cron
0 */4 * * * barman [ -x /usr/bin/barman ] && /usr/bin/barman backup meu_pgsql
1 0 * * * barman /backup/resources/bin/barman-retention.pl meu_pgsql 15 wals >> /backup/log/barman.log
1 0 * * * barman /backup/resources/bin/barman-retention.pl meu_pgsql 15 base >> /backup/log/barman.log
Onde:
/backup/resources/bin/barman-retention.pl - é o path do agente
meu_pgsql - é o nome que configurou na entrada do barman.conf
15 - 15 dias de retenção, pode ser menos ou mais, como queira
base - tipo de limpeza, esse argumento fará limpeza de todo backup sem archives com mais de 15 dias, por exemplo.
wals - tipo de limpeza, esse argumento fará limpeza de todos os wals com mais de 15 dias, por exemplo.
Apenas um detalhe, PG-RMan dá de laço no Barman, pois Barman não tem incremental(versão 1.0.0).
Nenhum comentário:
Postar um comentário