Antecedentes
Tuve un pequeño error de logrotate ... Logrotate rotaría los registros archivados por error causando un crecimiento cuadrático de archivos en mi /var/log/
. Y cuando me di cuenta de que algo andaba mal, /var/log/
ya contenía algunos millones de archivos ...
Logré (después de un poco de pérdida de cabello y encontrar / sed / grep magic) eliminar todos los archivos ofensivos y arreglar mi configuración de logrotate. Y pensé que todo estaba bien ...
Problema
Siempre que ls
/ du -hs
o de otra manera listar el contenido de /var/log/
(que ahora contiene 80 MB de archivos / logs y como máximo unos pocos cientos de archivos) el proceso haciendo que cuelga de un buen par de minutos. Creo que esto está relacionado de alguna manera con el error de logrotate, pero no estoy seguro, podría ser otra cosa. De todos modos, no sé por dónde comenzar a depurar o buscar una solución para esto. Por favor ayuda: 3
Otra información
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é esto: ¿Cuántos archivos en un directorio son demasiados? (La descarga de datos de la red) estaba relacionada, pero ya no me quedan los archivos.
Editar
El problema persiste incluso después de una llamada, por init 1
lo que creo que es seguro asumir que no hay otro proceso que culpar, excepto el FS.
Solución (aplicada a partir de la respuesta aceptada)
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
fuente