De fondo
Yo tenía un pequeño logrotate misshap... Logrotate sería rotar los logs archivados por misstake causando una ecuación cuadrática crecimiento de mis archivos en /var/log/
. Y por el momento me llamó el viento que algo estaba mal, /var/log/
contenía ya un par de millones de archivos...
Me las arreglé para (luego de la pérdida de cabello y encontrar/sed/grep magia) eliminar todos los archivos no deseados y arreglar mi logrotate config. Y pensé que todo estaba bien...
Problema
Siempre me ls
/du -hs
o de lo contrario lista el contenido de /var/log/
(que ahora contiene 80 mb de archivos/registros y en la mayoría de unos pocos cientos de archivos), el proceso de hacer que se bloquea durante un buen minuto o dos. Yo creo que esto es de alguna manera relacionados con el logrotate misshap pero no estoy seguro, podría ser algo más. De todos modos estoy en una pérdida para saber donde empezar a depurar o buscando una solución para esto. Ayuda por favor :3
Otra info
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
Pensé: ¿cuántos archivos en un directorio es demasiado? (Descarga de datos de la red) se relacionan, pero no tengo los archivos a la izquierda nada más.
Editar
El problema persiste incluso después de una llamada a init 1
así que creo que es seguro asumir que no hay ningún otro proceso de la culpa, sino la de FS.
Solución (aplicada desde aceptado respuesta)
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