Temos o desafio de excluir cerca de X milhões de arquivos que atendam a determinados critérios - especificamente, devem ter mais de 90 dias e excluir determinados formatos de arquivo. Até o momento, temos usado um script PowerShell multithread que é bom, mas ainda não tão rápido quanto precisamos, pois nossos processos de ingestão estão criando novos arquivos em uma taxa alta.
O que posso fazer para acelerar a exclusão de tantos arquivos?
Responder1
Saque do Agenteé muito rápido e suporta a exclusão de arquivos com base na data de modificação.
Além disso, obviamente, ele será executado mais rapidamente se você encerrar todos os outros processos em execução no servidor.
Responder2
O Powershell tem a reputação de não ser muito rápido; talvez um arquivo em lote usando o comando integrado do Windows forfiles
possa resolver o problema.
Para selecionar e excluir todos os arquivos com mais de 90 dias, você pode usar algo semelhante a:
forfiles -p "C:\your\dir" /S /D -90 /C "cmd /c del @path"
Se isso permanecer muito lento, você pode forfiles
criar primeiro uma lista dos arquivos a serem excluídos e usar um comando de remoção em lote sobre todos os arquivos da lista (isso pode diminuir significativamente o número de del
chamadas/iterações).
Para mais informações e outros modos mais ou menos criativos de exclusão de arquivos, você pode veraquieaqui