Capture o diretório e o conteúdo, gire somente os últimos três dias

1

Nossa atual abordagem de backup exige que capturemos um diretório do Tomcat e todo o seu conteúdo. A lógica é que o backup facilita a reimplementação no caso de um desastre.

Estava girando com base no número do dia, então teríamos uma semana de backups. O problema é que eles estão comendo muito espaço em disco, e nós realmente não precisamos de muita história.

Eu analisei logrotate , mas parece que ele está configurado para arquivos de log específicos. Existe alguma maneira de fazer logrotate capturar um diretório & conteúdo, fornecendo três dias úteis? Ou existe uma alternativa melhor?

    
por OMG Ponies 21.09.2010 / 20:42

2 respostas

1

Eu tive requisitos semelhantes. Minha solução era fazer backup de um backup diário para um diretório e, em seguida, podar com base na data.

find /path/to/backups/ -name 'tomcat*.tar.bz2' -atime +3 -mtime +3 -exec rm {} \;
DATE=$(date '+%Y-%m-%d')
tar -C /path/to/tomcat/root -cjvf /path/to/backups/tomcat-${DATE}.tar.bz2 .

Obviamente, coloque isso no cron. Correr uma vez por dia.

    
por 21.09.2010 / 20:49
0

Que tal usar a opção -u de tar (atualiza somente arquivos mais recentes) e compactar o arquivo toda semana?

Pense também sobre isso: o espaço em disco é realmente um problema tão grande? Dado o custo que os discos rígidos custam ultimamente, uma hora do seu tempo vale a pena fazer isso em comparação com o custo de comprar uma TB de espaço e esquecê-la?

    
por 21.09.2010 / 22:29