Backup: apagar arquivos desprezando determinado dia!

1. Backup: apagar arquivos desprezando determinado dia!

Mario Henrique
mariobatistella

(usa Ubuntu)

Enviado em 29/09/2014 - 11:23h

Bom dia, amigos!

Existe a possibilidade de executar o comando rm para excluir meus arquivos antigos, mas desprezando um determinado dia... no meu caso, preciso que não exclua os arquivos que sejam do dia 1 de cada mês!

Obrigado!


  


2. Re: Backup: apagar arquivos desprezando determinado dia!

Renato Carneiro Pacheco
renato_pacheco

(usa Debian)

Enviado em 29/09/2014 - 15:33h

Com o find:


find /diretorio -ctime -30 -exec rm -rf '{}' \;


Assim, ele vai apagar arquivos d 29 dias d criação pra cima (28, 27, 26...1).


3. Re: Backup: apagar arquivos desprezando determinado dia!

Mario Henrique
mariobatistella

(usa Ubuntu)

Enviado em 30/09/2014 - 08:37h

Valeu!


4. Re: Backup: apagar arquivos desprezando determinado dia!

Paulo
paulo1205

(usa Ubuntu)

Enviado em 30/09/2014 - 09:42h

A data faz parte dos nomes dos arquivos, ou é simplesmente uma propriedade (como, por exemplo, a data da última modificação)?

Se fizer parte do nome, você poderia fazer algo como vai abaixo (usando o bash).

rm -Rf arquivo-201[0-9]{0[1-9],1[0-2]}{0[2-9],[12][0-9],3[01]}.jpg 


Caso contrário, eu recomendaria usar algo mais sofisticado, como Perl, por exemplo.

find /diretorio -type f -print | \
perl -ne '
chomp($_);
$ctime=(lstat($_))[10];
$month_day=(localtime($ctime))[3];
unlink($_) unless $month_day==1;
'


Dá para fazer também com múltiplos utilitários ligados ao shell, mas vai ficar muito menos eficiente (i.e. vai ficar lento e pesado), especialmente se houver muitos arquivos.

exec 3< <(find /diretorio -type f -print)

while read file <&3; do
ctime=$(stat -c %z "$file")
month_day=$(date -d "@$ctime" +%d)
[[ "$month_day" == "01" ]] || rm -f "$file"
done

exec 3<&-



5. Resolvido!

Mario Henrique
mariobatistella

(usa Ubuntu)

Enviado em 30/09/2014 - 14:36h

Faz parte do nome!
Matou!
Muito obrigado!






Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts