Contexte
J'ai eu une petite erreur de forme logrotate ... Logrotate faisait tourner les journaux archivés par erreur provoquant une croissance quadratique des fichiers dans mon fichier /var/log/
. Et au moment où j'ai pris le vent que quelque chose clochait, /var/log/
contenait déjà quelques millions de fichiers ...
J'ai réussi à (après quelques pertes de cheveux et trouver / sed / grep magic) supprimer tous les fichiers incriminés et corriger ma configuration logrotate. Et je pensais que tout allait bien ...
Problème
Chaque fois que j'énumère ls
/ du -hs
ou répertorie le contenu de /var/log/
(qui contient maintenant 80 Mo d'archives / journaux et au plus quelques centaines de fichiers), le processus faisant cela se bloque pendant une bonne minute ou deux. Je crois que cela est en quelque sorte lié à la déformation logrotate mais je ne suis pas certain, cela pourrait être autre chose. Quoi qu'il en soit, je ne sais pas où commencer le débogage ou à la recherche d'un correctif pour cela. S'il vous plaît aider: 3
Autre 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
Je pensais ceci: combien de fichiers dans un répertoire est trop? (Téléchargement de données à partir du net) était lié, mais je n'ai plus les fichiers.
Éditer
Le problème persiste même après un appel à, init 1
donc je pense qu'il est sûr de supposer qu'il n'y a pas d'autre processus à blâmer que le FS.
Solution (telle qu'appliquée à partir de la réponse acceptée)
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