I had a small logrotate misshap... Logrotate would rotate the archived logs by misstake causing a quadratic growth of files in my
/var/log/. And by the time I caught wind that something was awry,
/var/log/ already contained a few million files...
I managed to (after some hairloss and find/sed/grep magic) remove all offending files and fix my logrotate config. And thought all was well...
du -hs or otherwise list the contents of
/var/log/ (which now contains 80mb of archives/logs and at most a few hundred files) the process doing that hangs for a good minute or two. I do believe this is somehow related to the logrotate misshap but I'm not certain, it could be something else. Anyway I'm at loss to where to start debugging or looking for a fix for this. Please help :3
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
I thought this: How many files in a directory is too many? (Downloading data from net) was related but I don't have the files left anymore.
The problem persists even after a call to
init 1 so I think it is safe to assume there is no other process to blame but the FS.
Solution (as applied from accepted answer)
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