Como remover o backup mais antigo? [RESOLVIDO]

1. Como remover o backup mais antigo? [RESOLVIDO]

Luiz Carlos
luizcarlos18rj

(usa Suse)

Enviado em 14/05/2014 - 12:38h

Oi galera me tirem essa dúvida por favor:

Tenho um script bem simples de backup, ele simplesmente copia pastas de servidores remotamente para um servidor de backup e diariamente ele cria uma pasta de nome bkp(dia/mes/ano)Ex.: bkp140514 e cada pasta dessa tem 218GB, tenho um HD de 2 TB dando em média capacidade para 9 backups, normalmente eu manualmente deleto alguns backups mais antigos pois essas pastas são gravadas em fita LT0 e o backup em HD é apenas um plano B ou uma forma de recuperação mais rápida ( não compactamos ).

Quando o HD passa de 90% de sua capacidade total e portanto com espaço para somente mais 1 backup, gostaria que quando esse último backup feito não restando mais espaço para nenhum backup, que o script fizesse com que a pasta mais antiga ( pela referência da data no nome ), fosse deletada para que pudesse fazer mais um backup e se passar os dias e ninguém liberar espaço manualmente que assim continuasse, sempre deletando o mais antigo liberando espaço para somente mais um backup, dessa forma teria:

- bkp010514
- bkp020514
- bkp030514
- bkp040514
- bkp050514
- bkp060514
- bkp070514
- bkp080514

- bkp090514 ( Nessa hora ele deleta a pasta bkp010514) e no dia seguinte aparece:


- bkp020514
- bkp030514
- bkp040514
- bkp050514
- bkp060514
- bkp070514
- bkp080514
- bkp090514
- bkp100514

e assim sucessivamente...


Alguma idéia?


  


2. Re: Como remover o backup mais antigo? [RESOLVIDO]

Paulo
paulo1205

(usa Ubuntu)

Enviado em 14/05/2014 - 14:01h

Pare de usar ddmmyy e passe a usar yyyymmdd. Desse modo, basta ordenar a lista para obter o mais velho (ou o mais novo) do nomes.


3. Como resolvi

Luiz Carlos
luizcarlos18rj

(usa Suse)

Enviado em 28/05/2014 - 12:24h

Após muita pesquisa "me safei" criando o código abaixo, mas como sou iniciante e não sei quase nada, embora ele cumpra o objetivo que é fazer uma vrf no tamanho do disco antes e depois da cópia excluindo o bkp mais antigo caso disco cheio, tenho ceteza que vcs podem me ajudar a melhorá-lo, mas fica pra futura referencia...



calcula_becapes(){
#
tamanho_disco_H=`df -h | grep backup-bkpservidores | cut -d" " -f3`
tamanho_disco=`echo $tamanho_disco_H | tr -d 'TG'`
tamanho_disco_aprox=$(echo "($tamanho_disco*1024)" | bc)
#
tamanho_pasta_H=`du -hs $pasta| cut -f1`
tamanho_pasta=`echo $tamanho_pasta_H | tr -d 'TG'`
#
becapes_possiveis=$(echo "(($tamanho_disco*1024)/$tamanho_pasta)-1" | bc)
#
pasta_excluir=`ls -1ltr | grep -m 1 bkp | cut -d" " -f9`
#
uso_H=`df -h | grep backup-bkpservidores | cut -d" " -f9`
uso=`echo $uso_H | tr % " "`
#
livre_H=`df -h | grep backup-bkpservidores | cut -d" " -f7`
livre=`echo $livre_H | tr -d 'TG'`
#
qtdbecapes=$(echo "$livre/$tamanho_pasta" | bc)
#
if [ $qtdbecapes -gt 0 ]; then
echo "Disco com $uso_H de sua capacidade total em uso, ainda é possível realizar $qtdbecapes becape(s)" >> /root/backup/controle.txt
else
echo "DISCO CHEIO!!! Excluindo o becape mais antigo." >> /root/backup/controle.txt
rm -rf $pasta_excluir
#
# Releitura de variáveis após liberação de espaço
#
uso_H2=`df -h | grep backup-bkpservidores | cut -d" " -f9`
livre_H2=`df -h | grep backup-bkpservidores | cut -d" " -f7 | tr -d 'TG'`
qtdbecapes2=$(echo "$livre2/$tamanho_pasta" | bc)
#
echo "Diretório excluido: $pasta_excluir" >> /root/backup/controle.txt
echo "*******************************************************" >> /root/backup/controle.txt
echo "*********| Análise do Volume: |*********" >> /root/backup/controle.txt
echo "*******************************************************" >> /root/backup/controle.txt
echo "Tamanho total do Volume: $tamanho_disco_H (+- $tamanho_disco_aprox GB)" >> /root/backup/controle.txt
echo "Tamanho total do becape atual: $tamanho_pasta_H" >> /root/backup/controle.txt
echo "Capacidade Total de becape(s)do Volume: $becapes_possiveis" >> /root/backup/controle.txt
echo "Espaço ocupado em Disco: $uso_H2" >> /root/backup/controle.txt
echo "Espaço Livre: $livre_H2" >> /root/backup/controle.txt
echo "Quantidade possível de becapes restantes: $qtdbecapes2 " >> /root/backup/controle.txt
echo "Obs.: Qtd possível de becapes em função no tamanho atual da pasta de becape" >> /root/backup/controle.txt
fi
echo "--------------------------------------------------------------------" >> /root/backup/controle.txt
#
}






Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts