Hintergrund
Ich hatte ein kleines Logrotate-Misshap ... Logrotate drehte die archivierten Protokolle durch einen Irrtum und verursachte ein quadratisches Wachstum der Dateien in meinem /var/log/
. Und als ich Wind bekam, war etwas schief und /var/log/
enthielt bereits ein paar Millionen Dateien ...
Ich habe es geschafft (nach einigem Haarausfall und der Suche nach / sed / grep magic), alle fehlerhaften Dateien zu entfernen und meine logrotate-Konfiguration zu reparieren. Und dachte alles wäre gut ...
Problem
Jedes Mal , wenn ich ls
/ du -hs
oder auf andere Weise auflisten , den Inhalt /var/log/
(die jetzt 80 MB Archive / logs enthält und höchstens ein paar hundert Dateien) Der Prozess, der hängt für eine gute oder zwei Minuten zu tun. Ich glaube, das hängt irgendwie mit dem logrotierten Missgeschick zusammen, aber ich bin mir nicht sicher, es könnte etwas anderes sein. Wie auch immer, ich weiß nicht, wo ich anfangen soll, Fehler zu beheben oder nach einer Lösung dafür zu suchen. Bitte helfen Sie: 3
Andere Information
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
Ich dachte mir das: Wie viele Dateien in einem Verzeichnis sind zu viele? (Herunterladen von Daten aus dem Netz) war verwandt, aber ich habe die Dateien nicht mehr übrig.
Bearbeiten
Das Problem bleibt auch nach einem Anruf bei bestehen, init 1
sodass ich davon ausgehen kann, dass kein anderer Prozess als der FS schuld ist.
Lösung (wie von der akzeptierten Antwort übernommen)
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
quelle