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

Re: Ajuda com Script



Pense no trecho :
usuarios=`cat /etc/passwd|cut -d ":" -f 1`;
for pasta in $usuarios;
do
   [trecho como foi passado acima]
done



que voce resolve seu problema, aí é o pulo do gato.

[]'s e sucesso.

PS: Quando responder para a lista, use responder a todos, responder em PVT só mesmo quando for um OFFTOPIC ou assunto particular.

2007/1/11, Anderson Kaiser < alpkaiser@gmail.com>:


2007/1/11, sirhamacker sir <sirhamacker@gmail.com>:
Voce está quase querendo um script pronto, né ? :)

Na verdade não. Apenas tentando entender uma forma de pegar apenas dos diretórios mencionados  pra frente, visto que, devido ao tempo de criação deles, eles também  poderiam ser alvos do script e serem apagados.

Vou lhe dar um pequeno exemplo e voce faz o resto, ok ?
#/bin/sh
pasta="/home/lixeira/fulano"
#
# Elimina os arquivos com mais de sete dias;
#
echo "Eliminando de $ponto_montagem arquivos mais antigos que sete dias."
for d in $pasta; do
  find $d  -type f -mtime +7 -exec rm --force "{}" \;
  #
  # Removemos os diretóios vazios
  #
  find $d/* -type d -print0 | \
       sort --zero-terminated --reverse | \
       xargs --no-run-if-empty --null --max-args 1 rmdir 2> /dev/null
done

agora pense nas linhas acima dentro dum loop, onde com um novo laço eu capture os nomes dos usuarios :
usuarios=`cat /etc/passwd|cut -d ":" -f 1`;
for pasta in $pasta_lixo;
do
   [trecho como foi passado acima]
done

Se voce usar a cabeça, o script tá pronto.


Vou dar uma olhada no seu script, pelo que  vi por cima, ele ajuda um pouco, mas acho que posso já comentar um pouco sobre uma parte dele, e é nessa parte que também me "enrosquei". ;-D

>Vou lhe dar um pequeno exemplo e voce faz o resto, ok ?
>#/bin/sh
>pasta="/home/lixeira/fulano"
>#
># Elimina os arquivos com mais de sete dias;
>#
>echo "Eliminando de $ponto_montagem arquivos mais antigos que sete dias."
>for d in $pasta; do
>find $d  -type f -mtime +7 -exec rm --force "{}" \;

Você passa o parãmetro pasta="/home/lixeira/fulano". Esse seria já o caminho absoluto onde os arquivos seriam pagadados. de "fulano" pra frente ele executaria o script com perfeição. Mas e se o ponto começasse em "/home/lixeira" e você quisesse apagar o que estivesse depois de "fulano" tipo, pulando um nível na hierarquia do diretório.

Pois senão, digamos que eu tenha 100 funcionários. Teria que criar 100 linhas iguais para cada diretório. Lembrando que os diretórios não terão, necessariamente, um nome de usuário criado no sistema, pois poderá ser um diretório temporário com o nome de um cliente, por exemplo.

É nesse ponto que estou pecando, e não consegui encontrar algo que me ajudasse. Mas obrigado. Seu script já ajudou um pouco o que preciso fazer e a clarear as idéias.

Muito obrigado!

--
Anderson Kaiser
alpkaiser@gmail.com
Linux User #: 426240
1011 10000011000100100110010000011000


Reply to: