Como deletar arquivos enormes via ftp ou ssh?

Como deletar arquivos enormes via ftp ou ssh?

Em meus servidores, um dos scripts que tenho usado continua criando os arquivos em branco na raiz e não sou notado há mais de 6 meses e agora o total de arquivos são criados em mais de 500.000 arquivos.

Não consigo acessar esse diretório pelo painel de controle porque havia muitos arquivos e só consigo acessar com ftp. Mesmo com o FTP, o FTP truncou os arquivos em 8.000 cada. Então eu tenho que continuar excluindo 8.000 cada.

Tentei pedir ao meu anfitrião para excluí-lo para mim, mas eles disseram que não podem, pois são questões de responsabilidade.

Então, o que eu quero saber é como posso excluir todos esses 500.000 arquivos por FTP? Como é hospedagem compartilhada, também não tenho acesso SSH. O provedor de hospedagem diz que posso solicitar o acesso SSH, mas preciso verificá-lo e seu escritório estará fechado até a próxima semana. Então, estou preso ao FTP por enquanto.

Então, por favor, deixe-me saber como posso excluir arquivos enormes via FTP?

E caso eu consiga obter acesso ssh, por favor, deixe-me saber como posso excluir os arquivos via ssh de maneira eficiente?

O nome do arquivo é assim

  • fechar cp.139619
  • fechar cp.139619.1
  • fechar cp.139620
  • fechar cp.139620.1

Responder1

ComoSamindiquei que colocaria um arquivo PHP ou Perl em seu espaço web que exclui os arquivos do diretório.

Certifique-se de que o script não possa ser encontrado facilmente por ninguém além de você e certifique-se de que os valores nele contidos não possam ser substituídos via POST ou GET.

Responder2

Provavelmente demorará muito para excluir esses arquivos, espere alta E/S durante esse tempo.

Há muitos conselhos úteis sobre como excluir muitos e muitos arquivos neste artigorm-em-um-diretório-com-milhões-de-arquivos

O seu pode não ser de milhões, mas será significativamente lento.

Responder3

Finalmente, consegui com as linhas de comando do FTP. Usei "cmd" da janela.

Primeiro preciso desligar o prompt com

prompt

Em seguida, exclua com o seguinte comando

mdelete closecp.*

Responder4

Se você puder usar o ssh na caixa, poderá executar algo como:

find /path/to/files -maxdepth 1 -name "closecp.*" -delete

Isso encontrará todos os arquivos com nomes no formato "closecp.*" (como você observou) no diretório /caminho/para/arquivo (altere isso para se adequar à sua situação). A opção "-maxprofundidade 1" impedirá que o comando "find" procure em subdiretórios e procure apenas em /caminho/para/arquivo.

informação relacionada