[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Re: Rotina de limpeza da pasta .recycle do samba



Olá Sérgio,

Na verdade eu já tinha tentado isso, mas no caso o problema está na hora que a linha do txt e jogada para a a variável e dele encarar o espaço em branco entre as palavras (mesmo que o inicio e o fim tenham aspas) como um caractere de fim de linha.

Eu também entrei no txt e coloquei manualmente as aspas nos nomes compostos, mesmo assim não funcionou.

Se souber outra dica por favor me mande.

Abraço

Pedro
Sérgio Pinheiro escreveu:
 
Olá Pedro, blz ?
 
Coloca a variável entre aspas que funciona.
 
find "$limpar" -type f -mtime 15 -exec rm -rf {} \;
 
Se quiser fazer um teste, faz assim:
 
mkdir "isso é um teste"
 
e depois entre no diretório pela tecla TAB.
 
cd iss TAB
 
E você verá que funciona.
 
Abraços,
 
Sérgio.
 
----- Original Message -----
From: Debian
Sent: Monday, June 25, 2007 11:46 AM
Subject: Rotina de limpeza da pasta .recycle do samba

Olá pessoal,

Trabalho com o samba 3.x na rede e configurei o sistema para que crie uma lixeira para cada compartilhamento existente no sistema.
Consultando a net consegui uma rotina para limpar os arquivos que estejam em um determinado tempo na lixeira.
find /compartilhamento/.recycle/ -type f -mtime 15 -exec rm -rf {} \;
O unico problema é que tenho que criar uma linha para cada compartilhamento existente. Então resolvi fazer uma rotina que liste todas as pastas .recycle do sistema e jogar para um txt e em cima dele rodar uma rotina com um for que leia o arquivo txt carregando o caminho das pastas .recycle do txt para uma variável e substituindo na rotina de limpeza das pastas:
find / -type d |grep .recycle > /tmp/lixo.txt # localiza todas pastas recycle e grava seu caminho no arquivo txt
for limpar in `cat /tmp/lixo.txt` # carrega cada linha para a variavel limpar
do
    find $limpar -type f -mtime 15 -exec rm -rf {} \; # executa o comando sobre o caminho contido na variável limpar
done

A rotina funciona bem, porém tenho um problema. Alguns nomes de pastas compartilhadas possuem espaço e qdo estas são carregadas do arquivo txt para variável limpar cada palavra separada é interpretada como uma pasta diferente. Ex:

/nome da pasta./recycle
é interpretada como:

find /nome -type f -mtime 15 -exec rm -rf {} \;
find /da -type f -mtime 15 -exec rm -rf {} \;
find /pasta/.recycle -type f -mtime 15 -exec rm -rf {} \;

Uma solução seria substituir o nome das pastas, mas muitas delas armazenam planilhas que possuem vínculos para estas pastas, logo, isso teria que ser refeito manualmente. Portanto, gostaria de saber se alguém pode me dar uma dica de como fazer com que a rotina interprete os nomes compostos das pastas de forma correta. Eu pensei em incluir aspas nos arquivo txt no inicio e no final da linha, mas não sei como fazer isso de forma automática.

Se alguém puder ajudar eu agradeço desde já.

Muito obrigado

Pedro


Reply to: