Deletar pasta por data de criação

38 views
Skip to first unread message

Camilo Silva

unread,
Jan 23, 2019, 1:22:23 PM1/23/19
to Python Brasil
Boa tarde,


Tenho um servidor que monitora uma rádio e que faz gravações diárias gerando uma pasta de áudios por dia, logo, com três meses já tenho que limpar o hd. Gostaria de obter a ajuda dos Srs para desenvolver esse programa que rodasse direto e que mensalmente excluísse as pastas com três meses de criação.

Desde já agradeço,

Att,


Camilo Silva

Filipe Cifali

unread,
Jan 23, 2019, 1:30:23 PM1/23/19
to python...@googlegroups.com
Você usa Linux? Se sim, instala o tmpreaper e cria um cronjob com `0 0 * * * tmpreaper 90d <path_to_dir>`. Já existem ferramentas (que não só o tmpreaper) que fazem isso, criar uma nova ferramenta para isso parece ineficiente.

--
--
------------------------------------
Grupo Python-Brasil
https://wiki.python.org.br/AntesDePerguntar
 
<*> Para visitar o site do grupo na web, acesse:
http://groups.google.com/group/python-brasil
 
<*> Para sair deste grupo, envie um e-mail para:
python-brasi...@googlegroups.com
---
Você recebeu essa mensagem porque está inscrito no grupo "Python Brasil" dos Grupos do Google.
Para cancelar inscrição nesse grupo e parar de receber e-mails dele, envie um e-mail para python-brasi...@googlegroups.com.
Para postar nesse grupo, envie um e-mail para python...@googlegroups.com.
Para ver essa discussão na Web, acesse https://groups.google.com/d/msgid/python-brasil/0cc57ea3-b300-453d-bbd1-96e588e908f7%40googlegroups.com.
Para mais opções, acesse https://groups.google.com/d/optout.


--
[ ]'s

Filipe Cifali Stangler

Camilo Silva

unread,
Jan 23, 2019, 1:36:21 PM1/23/19
to python...@googlegroups.com
Olá Filipe,

Aqui o servidor é um Windows 7, gostaria muito que fosse linux

Você recebeu essa mensagem porque está inscrito em um tópico no grupo "Python Brasil" dos Grupos do Google.
Para cancelar inscrição nesse tópico, acesse https://groups.google.com/d/topic/python-brasil/lphkjXBABuM/unsubscribe.
Para cancelar inscrição nesse grupo e todos os seus tópicos, envie um e-mail para python-brasi...@googlegroups.com.

Para postar nesse grupo, envie um e-mail para python...@googlegroups.com.

Para mais opções, acesse https://groups.google.com/d/optout.


--
José Camilo M. da Silva
28 999229107
 
 

Marcelo Valle

unread,
Jan 23, 2019, 2:07:41 PM1/23/19
to Python Brasil
Camilo, 

Suas duas opcoes sao:
  • Criar um daemon que fica rodando o tempo todo. Se voce fizer isso, vai ter que se preocupar:
    • Com alertas se o seu daemon falhar na execucao
    • Monitoramento de log
    • re-executar seu daemon se ele sair por algum motivo
    • dentre outros... O codigo python para agendar eh extremamente simples.
  • Usar uma ferramenta de mercado para agendar as tarefas, usada pela empresa inteira e integrada com os outros sistemas da empresa. Crond eh uma solucao caseira pra linux, mas voce encontra varias ferramentas mais profissionais que fazem agendamento de tarefas e se integram mais facilmente com outros sistemas, para qualquer SO.
Se quiser uma solucao profissional, terah de se preocupar com isso. Se quiser algo caseiro, o proprio windows tem seu agendador de tarefas, estilo crond. 
Veja 
e

Abracos,
Marcelo.


Filipe Cifali

unread,
Jan 23, 2019, 2:12:00 PM1/23/19
to python...@googlegroups.com
Windows 7 para servidor é novidade, mas o CMD tem uma ferramenta para isso já:


Vá em "method 2" e você aprenderá a usar ela, ForFiles parece bem flexível e parecido com o tmpreaper.


Para mais opções, acesse https://groups.google.com/d/optout.

Renato dos Santos

unread,
Jan 23, 2019, 2:38:58 PM1/23/19
to python...@googlegroups.com

Tenho um exemplo funcionado em linux, e é bem fácil adaptar para funcionar em windows.

use os.path.getctime ou os.stat(path).st_ctim para pegar a data de criação dos arquivos ou pastas


import os, sys, shutil
import datetime

menor = datetime.datetime.today()
menor = menor - datetime.timedelta(days=60)
menor = menor.strftime("%Y-%m-%d")

path = "/backup/"
dirs = os.listdir( path  )

for file in dirs:
    if file < menor:
        dirs = path + "/" + file
        print(dirs)
        shutil.rmtree(dirs)


Para mais opções, acesse https://groups.google.com/d/optout.
--
Renato dos Santos
Analista de Infraestrutura

48 3239-2400 Pabx
WPLEX Software Ltda.
Rodovia SC 401, 8600 Corporate Park Bloco 5 Sala 101
88050-000 Santo Antônio de Lisboa, Florianópolis SC
wplex.com.br
WPLEX

Camilo Silva

unread,
Jan 23, 2019, 4:34:31 PM1/23/19
to python...@googlegroups.com
consegui aki pelo powershell.

#configura script
$Pasta="C:\TSDA\Sistema ZEUS"
$n = 90 #Arquivos com mais de "n" dias serão apagados

#inicio do script ==============
# Seleciona Arquivos
$Arquivos_Deletar = gci $Pasta -r | Where { (-not $_.PsIsContainer) -and ($_.LastWriteTime -lt (date).addDays(-$n)  -and ($_.FullName -ne $Arquivo_Excessao)  ) } 
# Apaga
if (!($Arquivos_Deletar -eq $null)){$Arquivos_Deletar | Remove-Item -Force  }

# Seleciona pastas vazias
$Pasta_Vazias = Get-ChildItem $Pasta -Recurse| Where {($_.PsIsContainer) } 

if ($Pasta_Vazias -ne $null){
    foreach($PV in $Pasta_Vazias)
    {
        
        $subitems = Get-ChildItem -Recurse -Path $PV.FullName 
        if($subitems -eq $null)
        {
            "Remove item: " + $PV.FullName 
            Remove-Item $PV.FullName 
        }
        $subitems = $null
                     
    }
}





Obg Senhores


Para mais opções, acesse https://groups.google.com/d/optout.
Reply all
Reply to author
Forward
0 new messages