Criando uma “Lixeira” no Samba!

Uma das questões intrigantes do Windows Vista foi que a Microsoft retirou o suporte às Lixeiras na rede, recurso que existia nas primeiras versões beta desse sistema operacional. Assim sendo.. quando apagamos um arquivo na rede.. ele é perdido para sempre… alias.. era! Existe um recurso no samba para criar uma Lixeira no compartilhamento de rede! 😀

O funcionamento é bem simples, com a configuração de algumas linhas e a personalização de alguns detalhes podemos resgatar aquele “Ops, não era isso que era para… apagou…” 😛

Adicionamos as seguintes linhas ao smb.conf:

vfs objects = recycle
  recycle:keeptree = yes
  recycle:repository = lost+found
  recycle:touch_mtime = yes
  recycle:versions = yes
  recycle:exclude = *.tmp, ~*.*, desktop.ini, Thumbs.db

keeptree irá classificar a estrutura de arquivos original, tornando mais fácil resgatar qualquer tipo de conteúdo apagado;
repository é o diretório (criado toda vez se não existir) aonde os arquivos apagados vão parar;
touch_mtime altera a última modificação do arquivo para a hora que ele foi apagado (útil para o script de limpeza a seguir);
versions mantém todas as cópias do arquivo com o mesmo nome.

Existem outras opções na Documentação do Samba, porém eu considero essas as mais interessantes. 😉

Após reiniciar o samba, o diretório da lixeira será criado quando você apagar o primeiro arquivo!

Para concluir, considero que seria interessante criar um script para apagar arquivos antigos das lixeiras dos seus compartilhamentos! Aqui, eu utilizo esse script na raiz.. ele localiza e apaga independentemente todos os arquivos com mais de 15 dias em todas as lixeiras dos meus drives compartilhados 🙂 Agendei para que ele seja executado uma vez por semana!

for recycle in `find /storage -name lost+found -type d`; do \
           find $recycle -mtime +15 -exec rm -fr {} \;; done;

Sendo /storage a raiz dos meus compartilhamentos e lost+found o nome das lixeiras. 😀

Escreva seu comentário: