Remover arquivos com mais de "N" dias da Lixeira do Samba

Publicado por Tiago Jorge (última atualização em 19/06/2011)

[ Hits: 9.575 ]

Homepage: http://tjdestroyer.awardspace.com

Download limpalixeira.sh




Quando implantei o sistema de lixeira no samba surgiu a necessidade de "esvazia-la" periodicamente, como não queria fazer isso manualmente, escrevi esse script para automatizar a remoção dos arquivos copiados automaticamente para a lixeira do samba.

Com o problema resolvido, decidi compartilhar a solução que desenvolvi com toda comunidade...

Espero que tal solução possa ser útil.

  



Esconder código-fonte

# limpalixeira.sh V 0.1
# Shell Script para remocao de arquivos da lixeira (samba) com mais de N dias 
# Autor: Tiago Jorge - http://www.vivaolinux.com.br/~Tjdestroyer

#!/bin/bash

# Diretorio Lixeira
LIXEIRA=/mnt/trash/

# Arquivo de Log > adicionar o caminho completo do arquivo de log
ARQLOG=$LIXEIRA.arqremovidos.log

# Quantidade de dias que os arquivos ficam na lixeira
DIAS=15

# Listando todo conteudo do diretorio lixeira que tenha mais de n dias
echo $0: `date`: Verificando Existencia de Arquivos com mais de $i dias >> $ARQLOG

for i in `find $LIXEIRA -depth -mtime +$DIAS`
do
  # Comparando se arquivo não é arquivo de log e a raiz da lixeira 
  if [ "$i" != "$ARQLOG" ]; then
     if [ "$i" != "$LIXEIRA" ]; then
        # Removendo arquivo antigo
        rm -rf $i
        echo $0: `date`: Arquivo Removido Permanentemente!: $i >> $ARQLOG
     fi
  fi
done
echo $0: `date`: Verificação Concluída! >> $ARQLOG

# Fim do Arquivo
# Para adicionar ao crontab:
# crontab -e
# 00 18 * * * caminho_do_script
# esse comando fara o script rodar todos os dias as 18:00h

Scripts recomendados

Backup de algumas databases, Remotamente.

agilizando algumas tarefas

PINGS - Ping para diversos hosts em varios consoles

Shell Script para instalação do ePSXe no Ubuntu

Cálculo de área de cobertura de toner/tinta em uma impressão


  

Comentários
[1] Comentário enviado por Tjdestroyer em 19/06/2011 - 15:28h

Uma errata...
Altere as linhas:
# Listando todo conteudo do diretorio lixeira que tenha mais de n dias
echo $0: `date`: Verificando Existencia de Arquivos com mais de $i dias >> $ARQLOG

para:
# Listando todo conteudo do diretorio lixeira que tenha mais de n dias
echo $0: `date`: Verificando Existencia de Arquivos com mais de $DIAS dias >> $ARQLOG

Essa mudança não interfere em nada o funcionamento do script, apenas altera como a informação aparece no log.

[2] Comentário enviado por pickwick em 07/10/2014 - 10:24h

Olá colegas, notei que o script não exclui os arquivos que contem espaços. Acredito que falta algum parâmetro para corrigir isto. Por ex. se tiver a palavra
"lava jato", na lixeira ele vai tentar excluir a palavra "lava" e depois a palavra "jato" e não "lava jato".

Valew pessoal.

Se corrigir, poderia me encaminhar um e-mail para eu atualizar o meu. arthur.coimbra123@gmail.com obrigado!


Contribuir com comentário




Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts