fundo
Eu tive um pequeno erro de logrotate ... O logrotate giraria os logs arquivados por erro, causando um crescimento quadrático de arquivos no meu /var/log/
. E quando percebi que algo estava errado, /var/log/
já continha alguns milhões de arquivos ...
Eu consegui (depois de alguns problemas e encontrar / sed / grep magic) remover todos os arquivos ofensivos e corrigir minha configuração de logrotate. E pensei que tudo estava bem ...
Problema
Sempre que eu ls
/ du -hs
ou listar o conteúdo de /var/log/
(que agora contém 80mb de arquivos / logs e no máximo algumas centenas de arquivos), o processo é interrompido por um bom minuto ou dois. Acredito que isso esteja relacionado ao logrotate, mas não tenho certeza, poderia ser outra coisa. De qualquer forma, estou sem saber onde começar a depurar ou procurar uma correção para isso. Por favor ajude: 3
Outras informações
uname -a
Linux xxx 3.3.8-gentoo #18 SMP Sat Sep 21 22:44:40 CEST 2013 x86_64 Intel(R)
Core(TM)2 CPU 4400 @ 2.00GHz GenuineIntel GNU/Linux
cat /proc/meminfo
MemTotal: 2051552 kB
MemFree: 75612 kB
Buffers: 9016 kB
Cached: 1740608 kB
SwapCached: 0 kB
CFQ IO scheduler + SLUB allocator
Eu pensei o seguinte: Quantos arquivos em um diretório são muitos? (Download de dados da net) estava relacionado, mas não tenho mais os arquivos.
Editar
O problema persiste mesmo depois de uma chamada para, init 1
então eu acho que é seguro assumir que não há outro processo para culpar além do FS.
Solução (aplicada a partir da resposta aceita)
init 1
mv /var/log /var/log1
mkdir /var/log
chmod --reference=/var/log1 /var/log
chown --reference=/var/log1 /var/log
tar -C /var/log1 -cvp . | tar -C /var/log -xvp
rm -rf /var/log1
init 5
fonte