tło
Miałem małe zniekształcenie Logrotate ... Logrotate obracałby zarchiwizowane logi przez błędne wykonanie, powodując kwadratowy wzrost plików w moim pliku /var/log/
. A kiedy dowiedziałem się, że coś jest nie tak, /var/log/
zawierało już kilka milionów plików ...
Udało mi się (po pewnym utracie włosów i znalezieniu / sed / grep magic) usunąć wszystkie obrażające pliki i naprawić konfigurację logrotate. I myślałem, że wszystko było dobrze ...
Problem
Ilekroć ja ls
/ du -hs
lub w inny sposób wymieniam zawartość /var/log/
(która teraz zawiera 80 MB archiwów / dzienników i co najwyżej kilkaset plików), proces ten zawiesza się na dobrą minutę lub dwie. Wierzę, że jest to w jakiś sposób związane z zniekształceniem logrotatu, ale nie jestem pewien, może to być coś innego. W każdym razie nie wiem, gdzie zacząć debugowanie lub szukam rozwiązania tego problemu. Proszę o pomoc: 3
Inne informacje
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
Pomyślałem tak: ile plików w katalogu jest za dużo? (Pobieranie danych z sieci) było powiązane, ale nie mam już plików.
Edytować
Problem utrzymuje się nawet po wezwaniu do, init 1
więc myślę, że można bezpiecznie założyć, że nie ma innego procesu do obwinienia niż FS.
Rozwiązanie (zgodnie z przyjętą odpowiedzią)
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
źródło