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.