Excluir Arq. Velhos de um Diretório ATUALIZADO!

Publicado por F 31/08/2007

[ Hits: 5.543 ]

Download limparDir.sh




O script remove, recursivamente, de um diretório, os arquivos que baterem com determinada data / tempo de criação. Basta alterar o diretório, date / tempo .. e agendar no Cron.

NOTA! o script anterior dependia do aplicativo find 4.2.28 (findutils_4.2.28 >) para o find reconhecer o %M, dentro do script.

Esse novo script pode ser usado com findutils mais antigos e novos também.

  



Esconder código-fonte

#!/bin/bash
# fabio pupo. 15/08/07
# GPL v.3
# agendar script no arquivo /etc/crontab para ser executado todos os dias.

# definir o diretorio a ser limpo:
# nao utilizar nomes como '~/'
_diretorioDia='/home/pr908236'
_diretorioMes='/home/pr908236'
_diretorioAno='/home/pr908236'

##########################################
#---------VERSAO 1.0
##########################################
#                                                                       ↓↓↓↓↓↓ substituir por, ex.: -1 week
# para dias.  troquei %M por %m e usei 'cut' por coluna -f3 -d ' ' e nao por caractere .. para ter compatibilidade com o pacote findutils 4.1.20
find $_diretorioDia -type f -printf "%m %TY-%Tm-%Td %p\n" | grep `date -d '-4 day' +%Y-%m-%d` | cut -f3 -d ' ' | xargs rm -f

# para meses.
#find $_diretorioMes -type f -printf "%m %TY-%Tm-%Td %p\n" | grep `date -d '-1 month' +%Y-%m` | cut -f3 -d ' ' #| xargs rm -f
# para anos.
#find $_diretorioAno -type f -printf "%m %TY-%Tm-%Td %p\n" | grep `date -d '-1 year' +%Y` | cut -f3 -d ' ' #| xargs rm -f

# tabela de exemplos para substituicao:
# -2 day        dois dias atras
# -1 week       uma semana atras
# -3 month      um mes atras

Scripts recomendados

substituir.sh

Cálculo do fatorial

Converte permissões de octal para textual e vice-versa

Sugerindo artistas do Jamendo no Twitter

Personalizar teclado, alterar função de uma tecla


  

Comentários
[1] Comentário enviado por bruno.damada em 31/08/2007 - 15:58h

ou entao vc faz assim

find /diretorio -mtime +10 -exec rm {} \;

no caso do 10 significa, arquivos com mais de 10 dias...

[]'s

[2] Comentário enviado por fooues em 02/09/2007 - 12:24h

Bruno, blz, ahh sim .. mas nesse caso o comando retorna arquivos a mais de 10 dias e não arquivos que foram criados no 10 dia anterior a data atual ..

vlew
;)


Contribuir com comentário




Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts