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

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

Re: [shell-script] Re: Apagando arquivos com X dias


From: Flavio Junior
Subject: Re: [shell-script] Re: Apagando arquivos com X dias
Date: Tue, 17 Feb 2009 15:36:23 -0300

-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1

Bruno...

Teu problema é "classico", porem não simples de ser resolvido...
Veja o que faço abaixo e tente entender:
(infelizmente o gmail eh uma merda pra isso, postei aqui:
http://rafb.net/p/vgkJhV26.html )

[root@ideafix ~]# mkdir -p teste/teste2
[root@ideafix ~]# stat teste
  File: `teste'
  Size: 19              Blocks: 0          IO Block: 4096   directory
Device: 801h/2049d      Inode: 1576213     Links: 3
Access: (0755/drwxr-xr-x)  Uid: (    0/    root)   Gid: (    0/    root)
Access: 2009-02-17 15:29:00.600331500 -0300
Modify: 2009-02-17 15:29:00.612332250 -0300
Change: 2009-02-17 15:29:00.612332250 -0300
[root@ideafix ~]# stat teste/teste2
  File: `teste/teste2'
  Size: 6               Blocks: 0          IO Block: 4096   directory
Device: 801h/2049d      Inode: 2124026     Links: 2
Access: (0755/drwxr-xr-x)  Uid: (    0/    root)   Gid: (    0/    root)
Access: 2009-02-17 15:29:00.612332250 -0300
Modify: 2009-02-17 15:29:00.612332250 -0300
Change: 2009-02-17 15:29:00.612332250 -0300
[root@ideafix ~]# > teste/teste2/blah
[root@ideafix ~]# stat teste
  File: `teste'
  Size: 19              Blocks: 0          IO Block: 4096   directory
Device: 801h/2049d      Inode: 1576213     Links: 3
Access: (0755/drwxr-xr-x)  Uid: (    0/    root)   Gid: (    0/    root)
Access: 2009-02-17 15:29:00.600331500 -0300
Modify: 2009-02-17 15:29:00.612332250 -0300
Change: 2009-02-17 15:29:00.612332250 -0300
[root@ideafix ~]# stat teste/teste2
  File: `teste/teste2'
  Size: 17              Blocks: 0          IO Block: 4096   directory
Device: 801h/2049d      Inode: 2124026     Links: 2
Access: (0755/drwxr-xr-x)  Uid: (    0/    root)   Gid: (    0/    root)
Access: 2009-02-17 15:29:00.612332250 -0300
Modify: 2009-02-17 15:29:34.062422750 -0300
Change: 2009-02-17 15:29:34.062422750 -0300
[root@ideafix ~]#


Percebe que a estrutura é:
./teste
./teste/teste2

E então eu criei um arquivo chamado "blah" em:
./teste/teste2/blah

Veja que o "Modify" (mtime) do diretorio ./teste/teste2 foi alterado,
porem o do ./teste não foi...

Imagina se tu usa um comando:

# find . -mtime +2 -exec rm -rf {} \;

Percebe o que vai acontecer com "teste" ?
"teste" casa com o padrão, nada foi alterado no nivel dele nos ultimos
2 dias, e então o comando vai ser executado:

# rm -rf ./teste

E ai nos perdemos: ./teste/teste2, ./teste/dados_importantes, ./teste/omfg ....
E qualquer outra coisa abaixo de ./teste, por que quando o comando rm
- -rf é executado, ele não tem nada a ver com o find +mtime, ele
simplesmente DESTROI tudo o que tiver pra baixo do diretorio que tu
mandou.

Eu diria então pra tu dar uma olhada nos parametros -maxdepth e
- -mindepth do find, e tentar chegar a um consenso.

- --

Flávio do Carmo Júnior aka waKKu
#bash-br @ irc.freenode.net

-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.9 (MingW32)
Comment: http://getfiregpg.org

iEYEARECAAYFAkmbA6cACgkQgyuXjr6dyks4zQCgpnSiHeCQYoZ6NJRouenLkLrr
wbgAnRCsqp/l6UqYWPAYLKqT7JnRNKa2
=J8wr
-----END PGP SIGNATURE-----

2009/2/17 voyeg3r <address@hidden>:
> Se usar "-type f"
> ele pega somente arquivos
>
> --- Em address@hidden, bruno damada
> <bruno.damada@...> escreveu
>>
>> ah tah, eu achei que iria apagar somente os arquivos e nao as
> pastas... Obrigado
>>
>> --- Em ter, 17/2/09, voyeg3r <voyeg3r@...> escreveu:
>> De: voyeg3r <voyeg3r@...>
>> Assunto: [shell-script] Re: Apagando arquivos com X dias
>> Para: address@hidden
>> Data: Terça-feira, 17 de Fevereiro de 2009, 13:02
>>
>>
>>
>>
>>
>>
>>
>>
>>
>>
>>
>>
>> Perdão, eu entendi mal sua pergunta
>>
>>
>>
>> Mas a dica que mostrei do xargs com zero -print0 | xargs -0
>>
>> para min resolve quase sempre, principalmente se houver espaços nos
>>
>> nomes de arquivos e/ou pastas, sem esta opção é batata dar erro!
>>
>>
>>
>> --- Em shell-script@ yahoogrupos. com.br, bruno damada
>>
>> <bruno.damada@ ...> escreveu
>>
>> >
>>
>> >
>>
>> > Eu quero que apague tudo do diretorio tanto arquivos quanto pastas,
>>
>> mesmo assim não preciso do -r ??
>>
>> >
>>
>> >
>>
>> > --- Em ter, 17/2/09, voyeg3r <voyeg3r@ > escreveu:
>>
>> > De: voyeg3r <voyeg3r@ >
>>
>> > Assunto: [shell-script] Re: Apagando arquivos com X dias
>>
>> > Para: shell-script@ yahoogrupos. com.br
>>
>> > Data: Terça-feira, 17 de Fevereiro de 2009, 9:36
>>
>> >
>>
>> >
>>
>> >
>>
>> >
>>
>> >
>>
>> >
>>
>> >
>>
>> >
>>
>> >
>>
>> >
>>
>> >
>>
>> >
>>
>> > # basta dizer ao amado find que você só quer arquivos
>>
>> >
>>
>> >
>>
>> >
>>
>> > # Apagando arquivos das lixeiras com mais de 5 dias
>>
>> >
>>
>> > find /home/*/Lixeira/ * -type f -mtime +5 -exec rm -rf {} \;
>>
>> >
>>
>> >
>>
>> >
>>
>> > # Apagando arquivos do publico com mais de 10 dias
>>
>> >
>>
>> > find /samba/publico/ * -type f -mtime +10 -exec rm -rf {} \;
>>
>> >
>>
>> >
>>
>> >
>>
>> > # outra dica: é muito mais rápido usar o find com o xargs ao
>>
>> >
>>
>> > # invés do -exec
>>
>> >
>>
>> >
>>
>> >
>>
>> > find /home/*/Lixeira/ * -type f -mtime +5 -print0 | xargs -0 rm -f
>>
>> >
>>
>> >
>>
>> >
>>
>> > # a opção -print0 coloca um delimitador para cada arquivo evitando
>>
>> >
>>
>> > # erros em "arquivos com espaço no nome" e o xargs entrega ao rm
>>
>> >
>>
>> > # blocos de um tamanho que nunca vai dar estouro da pilha de memória
>>
>> >
>>
>> >
>>
>> >
>>
>> > # se são arquivos não necessita da opção -r (recursividade no exec)
>>
>> >
>>
>> >
>>
>> >
>>
>> > --- Em shell-script@ yahoogrupos. com.br, bruno damada
>>
>> >
>>
>> > <bruno.damada@ ...> escreveu
>>
>> >
>>
>> > >
>>
>> >
>>
>> > > Preciso apagar alguns arquivos depois de X dias de determinados
>>
>> >
>>
>> > diretorios.. .. Porem ele nao esta apagando pastas... Segue abaixo o
>>
>> Codigo
>>
>> >
>>
>> > >
>>
>> >
>>
>> > > # Apagando arquivos das lixeiras com mais de 5 dias
>>
>> >
>>
>> > > find /home/*/Lixeira/ * -mtime +5 -exec rm -rf {} \;
>>
>> >
>>
>> > >
>>
>> >
>>
>> > > # Apagando arquivos do publico com mais de 10 dias
>>
>> >
>>
>> > > find /samba/publico/ * -mtime +10 -exec rm -rf {} \;
>>
>> >
>>
>> > >
>>
>> >
>>
>> > > []'s
>>
>> >
>>
>> > >
>>
>> >
>>
>> > >
>>
>> >
>>
>> > >
>>
>> >
>>
>> > > Veja quais são os assuntos do momento no Yahoo! +Buscados
>>
>> >
>>
>> > > http://br.maisbusca dos.yahoo. com
>>
>> >
>>
>> > >
>>
>> >
>>
>> > > [As partes desta mensagem que não continham texto foram removidas]
>>
>> >
>>
>> > >
>>
>> >
>>
>> >
>>
>> >
>>
>> >
>>
>> >
>>
>> >
>>
>> >
>>
>> >
>>
>> >
>>
>> >
>>
>> >
>>
>> >
>>
>> >
>>
>> >
>>
>> >
>>
>> >
>>
>> >
>>
>> >
>>
>> >
>>
>> >
>>
>> >
>>
>> >
>>
>> >
>>
>> >
>>
>> >
>>
>> >
>>
>> >
>>
>> >
>>
>> >
>>
>> > Veja quais são os assuntos do momento no Yahoo! +Buscados
>>
>> > http://br.maisbusca dos.yahoo. com
>>
>> >
>>
>> > [As partes desta mensagem que não continham texto foram removidas]
>>
>> >
>>
>>
>>
>>
>>
>>
>>
>>
>>
>>
>>
>>
>>
>>
>>
>>
>>
>>
>>
>>
>>
>>
>>
>>
>>
>>
>>
>>
>>
>> Veja quais são os assuntos do momento no Yahoo! +Buscados
>> http://br.maisbuscados.yahoo.com
>>
>> [As partes desta mensagem que não continham texto foram removidas]
>>
>
> 


reply via email to

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