Parece-me que você pode ter um número enorme de arquivos no diretório. Eu vi sintomas muito semelhantes ao que você descreve com diretórios muito grandes.
Pode ter havido algum tipo de problema (possivelmente um problema de configuração com o logrotate) em que você acabou com milhões de arquivos. Quando você chega aos milhões, a maioria dos sistemas de arquivos começa a ter problemas. Apenas fazendo um ls
pode levar uma quantidade enorme de tempo, e pode até morrer se você esperar o tempo suficiente. Comandos como rm
também terão problemas devido ao grande número de arquivos. Da mesma forma, coisas como logrotate parecerão travar porque executar operações simples no diretório levará muito tempo para ser concluído.
Uma maneira de verificar isso é fazer um ls -l
no diretório acima (/ var / log / apache2 / neste caso) e visualizar o tamanho da entrada de diretório (não o conteúdo). Por exemplo (de um servidor que tenho, onde existem alguns diretórios com muitos arquivos):
$ ls -lh
rwxrwxr-x 2 ironport ironport 11M Apr 21 19:37 oma01syslog01/
drwxrwxr-x 2 ironport ironport 12M Apr 21 19:37 oma01syslog02/
drwxrwxr-x 2 ironport ironport 5.8M Mar 17 12:30 sat01syslog01/
drwxrwxr-x 2 ironport ironport 4.0K Jun 29 2011 swn01syslog01/
$ for DIR in * ; do echo -n "$DIR: " ; find $DIR -type f -print | wc -l ; done
oma01syslog01: 204332
oma01syslog02: 195500
sat01syslog01: 70960
swn01syslog01: 0
Observe o tamanho da entrada de diretório em comparação com o número de arquivos nela.
Sua melhor aposta é tentar visualizar os arquivos com algo como find
. Ele não tenta extrair toda a lista antes de exibi-las e pode permitir que você consulte e opere em um diretório sem os problemas que você vê em ls
e rm
. Alguns exemplos úteis estão abaixo.
Número de arquivos:
find ./directory/name/here -type f -print | wc -l
Veja uma amostra de arquivos no diretório:
find ./directory/name/here -type f -print | head -20 | xargs ls -lh
Remova todos os arquivos correspondentes a um padrão do diretório:
find ./directory/name/here -type f -iname '*.log' -print | xargs rm -rf
Nota : Acabei de notar o seu comentário, em que mostrou um ls
de um único diretório:
drwxr-xr-x 2 root root 126406656 2011-10-17 18:51 vhosts
Isso confirma minhas suspeitas. 126406656 bytes é 120MB. Essa é uma entrada de diretório muito grande (do meu exemplo acima, eu tinha uma entrada de diretório de 11MB com 200k arquivos) e sugere que você tinha milhões de arquivos nesse diretório.