Apagar diretorios por data + antiga [RESOLVIDO]

1. Apagar diretorios por data + antiga [RESOLVIDO]

Eduardo da Silva Tutini
etutini

(usa Fedora)

Enviado em 20/10/2008 - 14:17h

Ola pessoal, gostaria de parabenizar vcs todos pelo site, dentro de minha buscas na internet ele sempre eh o primeiro a retornar resposta, PARABENS, bem... eh o seguinte gostaria de uma ajuda para apagar diretorios mais antigos que faço num backup na empresa onde trabalho. É um script simples que criei baseado em outro que vi, mas como ele vai ser automatico, preciso que delete os diretorios mais velhos depois de 5 dias, nao posso compacta-los devido ao pessoal aqui nao querer entao tem que ser em pasta mesmo, da em torno de 73 gb a pasta, esse aqui eh meu script

#!/bin/bash

PASTA_DESTINO=/backup

TEMPO_LIMITE=5

pp /sistema/html $PASTA_DESTINO/html-`date +%Y-%m-%d`-$HOSTNAME -fr


Ta funcionando legal + não queria ter que ficar monitorando isso, ele ficando automatizado seria bem melhor

Alguem tem alguma dica? Desde já agradeço





  


2. MELHOR RESPOSTA

nelio
neliobjr

(usa Red Hat)

Enviado em 20/10/2008 - 17:29h

Do jeito que vc escreveu a variavel tempo destino esta de enfeite, o jeito de fazer funcionar, porem não sei se funciona do jeito que vc quer seria assim:



#!/bin/bash

PASTA_DESTINO=/backup

TEMPO_LIMITE=5

cp /sistema/html $PASTA_DESTINO/html-`date +%Y-%m-%d`-$HOSTNAME -fr

find $PASTA_DESTINO -type d -mtime +$TEMPO_LIMITE -exec rm -rf {} \;

O que indica o tempo limite neste caso do comando find é o mtime, onde estava o numero 5, não sei e não estou perto de um linux para testar para vc, se funciona com forma de variavel declarada, se não funcinonar comente a 3º linha TEMPO_LIMITE=5, apague no comando find que eu alterei agora, o $TEMPO_LIMITE e coloque o valor 5, que com certeza funcionará...
Um jeito de vc fazer um teste, é copie todos os arquivos para uma pasta backup do backup, rsrsrs, crie uma backup_2, backup_new, novo_backup, qualquer coisa, e faça o teste na sua pasta backup para saber como ira tratar, uma dica, coloque o valor do mtime maior, 10, por exemplo, e vá reduzindo, para poder ver quantos dias esta apagando etc...
Outra dica, não irá funcionar, se vc executar este comando na pasta que vc acabou de criar e copiar, pois o mtime, se muito me engano procura no status da ultima alteração, e como vc acabou de copiar, estará como status de agora.



3. Re: Apagar diretorios por data + antiga [RESOLVIDO]

Sandro Marcell
SMarcell

(usa Slackware)

Enviado em 20/10/2008 - 15:14h

Tente utilizar o find!

find /dir/bkps -type d -mtime +5 -exec rm -rf {} \;

Desse modo, ele irá apagar os diretórios que não são acessados a mais de 5 dias.

Mais detalhes:
man find



4. Re: Apagar diretorios por data + antiga [RESOLVIDO]

Eduardo da Silva Tutini
etutini

(usa Fedora)

Enviado em 20/10/2008 - 16:43h

obrigado smarcell, mas esse comando nao iria procurar todos os diretorios dentro do meu backup? queria algo que apagasse direto a raiz do backup, ex:

La eh assim:
o backup fica em
/backup/sistema-2008-10-20-servidor

ai tem as variantes do backup
/backup/sistema-2008-10-19-servidor
/backup/sistema-2008-10-18-servidor
/backup/sistema-2008-10-17-servidor
e ai vai...

queria algo que verificasse entre esses diretorios o mais antigo a "n" dias e apagasse direto essa "sistema-2008-10-17-servidor"

Obrigado por me ajudar amigo!





5. Re: Apagar diretorios por data + antiga [RESOLVIDO]

nelio
neliobjr

(usa Red Hat)

Enviado em 20/10/2008 - 16:58h

Não, ele irá excluir somente os que o comando "find com a opção ctime 5" para cinco dias acho.

Ex.:

/backup/20-10
/backup/19-10
/backup/18-10
/backup/17-10
/backup/16-10
/backup/15-10

Apos rodar este comando ira apagar somente as pastas do dia 15-10 para tras, 14, 13, 12....






6. Re: Apagar diretorios por data + antiga [RESOLVIDO]

Eduardo da Silva Tutini
etutini

(usa Fedora)

Enviado em 20/10/2008 - 17:19h

legal pessoal obrigado, mas uma duvida, qual a saida que isso vai me dar pq pretendo usar isso assim:

#!/bin/bash

PASTA_DESTINO=/backup

TEMPO_LIMITE=5

cp /sistema/html $PASTA_DESTINO/html-`date +%Y-%m-%d`-$HOSTNAME -fr

find $PASTA_DESTINO -type d -mtime +5 -exec rm -rf {} \;

isso vai dar certo?!



7. Re: Apagar diretorios por data + antiga [RESOLVIDO]

Eduardo da Silva Tutini
etutini

(usa Fedora)

Enviado em 20/10/2008 - 17:38h

obrigado neliobjr! vou testar esse procedimento e aviso a vcs! ahh e aquela variavel la passou despercebido, kkkkk valeus a força!


8. Re: Apagar diretorios por data + antiga [RESOLVIDO]

Eduardo da Silva Tutini
etutini

(usa Fedora)

Enviado em 21/10/2008 - 08:58h

Obrigado a sMarcell e neliobjr pela ajuda de vcs! deixei agendado essa noite o backup e la ja tinha uma pastinha de backup antiga de 14 de outubro, o q aconteceu?! ele fez o backup de ontem normals e apagou a do dia 14!! perfecto meninos! obrigadao!






Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts