Deletar Backup Antigos

1. Deletar Backup Antigos

wenderson
chacau19

(usa Ubuntu)

Enviado em 03/05/2016 - 11:45h

Bom Dia!
Tenho um servidor CentOS 6.7 onde esta instalando o banco de Dados PostgreSQL, nele esta tudo certo fazendo backup todos os dias gravando os arquivos no seguinte nome

echo "Definindo Variaveis para o Sistema"
SRC="/dados/backup/"
DATE="`date +%d-%m-%Y-%H_%m_%S`"
BKP_NAME="BkpErp_"
BKP_NAME_WRPDV="BkpWrpdv_"
NAME="Bck_'date +%d_%m_%Y'$"
VERIFICA=`df -h |grep "/mnt/bkp" |wc -l `

então ele salva os arquivos da seguinte forma mudando o dia e a hora.

BkpErp_01-05-2016-12_05_01.tar.bz2

BkpWrpdv_01-05-2016-12_05_01.tar.bz2

agora quero deletar arquivos com mais de 3 dias tentei usar o seguinte script so que não da certo.

#!/bin/bash
# Remove arquivos maiores que 2 dias e gera um log

echo "Definindo Variaveis para o Sistema"
FILENAME=FILES_$(date +%Y%m%d%H%M%m).log

echo "Pesquisando arquivos com + de 5 Dias"
#find /mnt/nuvem -mtime +2 -exec echo {} \; > $FILENAME

find /mnt/bkp/ -mtime +2 -exec rm -f {} \;

echo "Removendo Arquivos conforme Condição Acima"
#rm -rfv $(cat $FILENAME)






  


2. Re: Deletar Backup Antigos

Ronaldo Ferreira de Lima
textmode

(usa Slackware)

Enviado em 03/05/2016 - 16:06h

Obs.: Pelo menos eu, considero desorganização e retrabalho utilizar formatos de data diferente de %Y-%m-%d (com ou sem hífens).

Para cada arquivo, você deve capturar a data no nome do arquivo, converter para '%Y-%m-%d %H%M%S' e transforme-a em timestamp, exemplo:

[code]
date -d'2016-05-01 12:05:01' +%s
[code]

Daí é só comparar numericamente com o timestamp de "3 dias atrás":

[code]
date -d'3 day ago' +%s
[code]

Estou desconsiderando completamente os timezones aqui, acho que não são relevantes ao caso.


3. Re: Deletar Backup Antigos

Renato Carneiro Pacheco
renato_pacheco

(usa Debian)

Enviado em 03/05/2016 - 16:18h

Troque o mtime pelo ctime, q busca pela data de criação e não d modificação (talvez as datas coincidam, mas é mais garantido).
--
Renato Carneiro Pacheco
Certificado Linux LPIC-1
Especialista em Segurança em Redes de Computadores
Graduado em Redes de Comunicação

http://br.linkedin.com/in/renatocarneirop
http://www.facebook.com/renatocarneirop

"Não acredite no que eu digo, pois é a minha experiência e não a sua. Experimente, indague e busque." - Osho Rajneesh


4. Re: Deletar Backup Antigos

Ronaldo Ferreira de Lima
textmode

(usa Slackware)

Enviado em 04/05/2016 - 19:29h

Abordagens por atime/mtime/ctime são ruins porque tanto um inadvertido
touch * 
(ou qualquer coisa parecida) quanto migrações de sistemas de arquivos/servidores, recuperação de backups etc, podem destruir a rotina. O único modo seguro é colocar a data no nome do arquivo mesmo (ou quando possível/viável, dentro do arquivo), usando o formato %Y-%m-%d com ou sem hífens e, se for utilizar horário, utilizar sempre em UTC, ou nunca esquecer de declarar o timezone utilizado.






Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts