Acesso direto ao conteúdo
Logotipo Dicas-L, por Ricardo Burile

Busca

Visite também: Segurança Linux ·  UnderLinux ·  VivaOLinux ·  LinuxSecurity ·  NoticiasLinux ·  BR-Linux ·  SoftwareLivre.org ·  [mais]   
 

Você está aqui: Home  → Arquivo Dicas-L

 

Assine a Lista Dicas-L

Receba diariamente por email as dicas
de informática publicadas neste site
Para se descadastrar, clique aqui.

Limpando o .recycle do samba

Colaboração: saulo fabrin

Data de Publicação: 09 de Junho de 2005

Quando utilizamos o samba como PDC, temos a opção de utilizar uma lib chamada .recycle, que realiza a tarefa de manter em um diretório (.recycle) todos os arquivos apagados pelos usuários, o que muitas vezes é bem mais rápido do que voltar backup e bibibi bóbóbó.

Um detalhe importante desta lib .recycle do samba é que quando um determinado arquivo é excluido de sua pasta original e enviado para a lixeira é mantida a data original do arquivo e não a data de exclusão do mesmo, o que trás dificuldades se queremos limpar a nossa lixeira deixando apenas os arquivos excluídos nos últimos 30 dias.

Para saber o dia em que o arquivo foi enviado para a lixeira vamos utilizar o seguinte comando:

  **stat /fileserver/.recycle/teste.txt**
  
  :  File: "/fileserver/.recycle/teste.txt"
  :  Size: 32256           Blocks: 64         IO Block: 4096   Regular File
  :  Device: 806h/2054d      Inode: 6373477     Links: 1
  :  Access: (0766/-rwxrw-rw-)  Uid: (  850/linux)   Gid: (  850/linux)
  :  Access: Tue May 31 19:34:00 2005
  :  Modify: Tue May 31 19:33:46 2005
  :  Change: Tue May 31 19:44:06 2005

O que nos interessa aqui é a linha do Change que contém a data, hora e ano em que o arquivo foi enviado para a lixeira, para isto utilizamos:

  **stat -c "%n %z" /fileserver/.recycle/teste.txt**
  
  teste.txt Tue May 31 19:44:06 2005
  
  onde:
      - -c - para definir formato
      - %n - exibe nome do arquivo
      - %z - exibe data da última modificação
  

Para facilitar fiz o seguinte script:

  : #!/bin/sh
  : #
  : # recycle.sh - Utilizado para remover arquivos da lixeira do samba
  : #
  : # Autor: Saulo Fabrin <caroco@gmail.com>
  : #
  : # -----------------------------------------------------------------
  : # Este programa deve ser colocado no cron e executado todos os dias
  : # para remover arquivo antigos da lixeira do samba com base nos
  : # parametros "DIR" e "DAT"
  : #
  : # Onde:
  : #
  : # DIR - diretorio principal onde esta localizado o .recycle
  : # DAT - remove os arquivos há 30 dias, a partir da data atual
  : #
  : # ----------------------------------------------------------------
  
  : DIR="/fileserver/"
  :  DAT="30"
  
  : #utilizado para gerar as datas
  : DAT1=``date --date "$DAT day ago" | awk '{print $1" "$2" "$3}'``
  : DAT2=``echo $DAT1 | awk '{print $1}'``
  
  
  : #localiza e exclui os arquivos de acordo com os parametros passados
  : find "$DIR" -type f -exec stat -c "%n %z" {} \; \
          | grep ".recycle"  | egrep -w "$DAT1" |   \
          awk -F "$DAT2" '{print $1}'| sed 's/^/"/g ; s/ $/"/g' \
          | xargs -replace rm

Lembrando que se o formato da data for diferente do apresentado nos exemplos acima o script deve ser alterado conforme as suas necessidades. :)

Veja a relação completa dos artigos de saulo fabrin

Formato PDF
Newsfeed RSS
Formato para impressão
PDF RSS Imprimir

Referências Adicionais

Referências adicionais sobre os assuntos abordados neste site podem ser encontradas em nossa Bibliografia.

Avalie esta dica

  • Currently 2.99/5
  • 1
  • 2
  • 3
  • 4
  • 5

Avaliação: 3.0 /5 (1301 votos)

Opinião dos Leitores

Seja o primeiro a comentar este artigo
*Nome:
Email:
Me notifique sobre novos comentários nessa página
Oculte meu email
*Texto:
 
  Para publicar seu comentário, digite o código contido na imagem acima
 


Powered by Scriptsmill Comments Script
Treinamentos, Consultorias e Soluçoes em TI. Baseados em softwares livres e padrões abertos para ambientes de missão crítica

Submarino.com.br

Objective-C Fundamental