shell-script-pt
[Top][All Lists]
Advanced

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

Re: [shell-script] Manutenção Lixeira Samba


From: Gilberto Nunes
Subject: Re: [shell-script] Manutenção Lixeira Samba
Date: Fri, 7 Mar 2014 14:52:56 -0300

Então.. Só pra completar o pensamento...

To usando assim:

# diretorio raiz do samba
#Diretorio da Lixeira
dirSamba="/home/samba/shares"
#Arquivo de Log
log="/var/log/lixeira.log";
log2="/var/log/tamanho_lixeira.log";
#Remove os arquivos que foram movidos para lixeira a partir x dias
dias="2";


# O for irá passar os retornos do find para o $i.
# O find irá procurar a partir do diretorio $dirSamba qualquer coisa que combine com o nome "RecycleBin".
for i in $(find "$dirSamba" -iname RecycleBin -type f -ctime "+$dias" ); do
    # O rm ira apagar recusivamente qualquer coisa que tiver dentro das pastas "RecycleBin".
    #ls "$i"/*
    ls "$i"
done

Veja que coloquei a variável dias e usei ctime "+$dias", mas não funcionou....

Só funcionou se eu coloco um sinal de menos ( - ) ao invés do sinal de mais ( + )...

O correto é - ou + ali no parâmetro -ctime ??

Obrigado


Em 7 de março de 2014 14:35, Gilberto Nunes <address@hidden> escreveu:
Wow!!!

Obrigo Willy... Era isso mesmo que eu queria... Obrigado...


Em 7 de março de 2014 14:33, Willy Romão <address@hidden> escreveu:

 

Gilberto,

Um simples find já te dará a todos os diretorios.

Exemplo:

# diretorio raiz do samba
dirSamba="/smb"

# O for irá passar os retornos do find para o $i.
# O find irá procurar a partir do diretorio $dirSamba qualquer coisa que combine com o nome "RecycleBin".
for i in $(find "$dirSamba" -iname RecycleBin); do
    # O rm ira apagar recusivamente qualquer coisa que tiver dentro das pastas "RecycleBin".
    rm -rf "$i"/*
done

Qualquer dúvida é só falar.

Willy Romão




On 03/07/2014 01:56 PM, Gilberto Nunes wrote:
 
Seria legal...

Mas nesse caso é para ser disparado por um contrab e creio que com yad ou qualquer outro programa que manipule telas não seria bom...

Trata-se de um servidor, que portanto não tem X-Server... Até tem, pois trata-se de um Zentyal server... Mas quero ficar restrito ao shell....

Valeu


Em 7 de março de 2014 13:51, Julio C. Neves <address@hidden> escreveu:
 
Se alguém tiver tempo (uns 15 ~ 20 minutos), pode reescrever esse script usando yad. Ficaria fantástico. Se ninguém fizer, talvez eu faça neste fim de semana.

Abcs,
Julio
@juliobash

Próximos cursos de Shell

Cidade

Local

Período

Rio de Janeiro

EDX

07-11/04

Dou treinamento de shell em qualquer cidade.
Para detalhes, entre em contato por email ou
echo 436233889341364416673541503686485725801923229706P | dc 


Em 7 de março de 2014 12:39, Gilberto Nunes <address@hidden> escreveu:

 
Olá amigos...

Estou pesquisando alguns scripts shell pra limpar a lixeira do Samba...

Encontrei esse por exemplo:

#!/bin/bash
#Script com para limpeza recursiva para lixeira do Samba


urlDir="/hd500g/.lixeira"; #Diretório raiz da lixeira
arqTmp="/tmp/arvore.txt"; #Arquivo temporário para criação da árvore de diretório
arqLog="/var/log/lixeira.log"; #Arquivo de log, onde irá logar os arquivos removidos
idade="15"; # idade do arquivo em dias

ls -RF $urlDir |grep : |tr : / > $arqTmp #Lista os diretórios recursivamente e salva em arvore.txt, especificado acima
contDir=$(cat $arqTmp) # Conteúdo de arvore.txt

DATA_LOG=`date +%a-%d-%m-%Y-%H:%M:%S` # Data para manter o log mais específico
rm -f $arqLog # Removendo arquivo de log, para não enchê-lo (Se for usar logrotate nem precisa)

echo -e "***************$DATA_LOG***************" >> $arqLog # Cabeçalho para o log (Enfeite)

for x in $contDir; do #Loop para entrar nos subdiretórios

find $urlDir -type f -ctime $idade 2 > /dev/null | # Procura pelos arquivos com a idade especificada
while read arquivo; do
echo "Excluido: $arquivo" >> $arqLog # Aqui loga o nome do arquivo a ser removido
rm -rf $arquivo # Remove arquivo

done
done

echo -e "***************$DATA_LOG***************" >> $arqLog # Rodapé para o log (Enfeite)

rm -f $arqTmp # Remove o arquivo temporário com a árvore de diretórios

exit 0; #Finaliza


Achei legal...


Mas aqui no meu caso, eu tenho uma pasta RecycleBin para cada compartilhamento...
Tipo:

Diretorio-A/RecycleBin

Diretorio-B/RecycleBin

Eu queria incrementar o script acima, para pegar diferentes pastas...

Alguém pode me dar uma ajuda??

Obrigado


--
Gilberto Ferreira




--
Gilberto Ferreira

-- 
Willy Romão




--
Gilberto Ferreira



--
Gilberto Ferreira

reply via email to

[Prev in Thread] Current Thread [Next in Thread]