• Willkommen im Linux Club - dem deutschsprachigen Supportforum für GNU/Linux. Registriere dich kostenlos, um alle Inhalte zu sehen und Fragen zu stellen.

[gelöst] Verzeichnisgröße

Ronin

Newbie
Hallo Zusammen,

hatte vor ein paar Wochen ein Problem mit Logrotate.
Habe Logrotate statt mit "getmail*.log" mit "getmail*" arbeiten lassen, was zur Folge hatte, dass er exponential täglich Dateien like getmail_xxxxx_.1 -> getmail_xxxxx_.1.1.1.1.1 usw. anlegte und zwar so lange, bis der Server ausstieg.

Das Problem habe ich behoben, aber seitdem habe ich ein Problem, wenn ich das /var/log Verzeichnis mittels "ls /var/log" anzeigen will.
Es dauert zwischen 30-60 Sekunden, ehe das Verzeichnis endlich angezeigt wird.

Die falsch angelegten Logfiles hatte ich alle entfernt und das /var/log-Verzeichnis hat wieder eine Größe von rund 140MB.

Mir ist allerdings folgendes aufgefallen. Schaue ich mir mittels "ls /var -al" das übergeordnete Verzeichnis an, wird das Log-Verzeichnis wie folgt angezeigt:

drwxr-xr-x 2 root root 4096 2010-04-15 23:17 backups
drwxr-xr-x 15 root root 4096 2009-12-03 11:27 cache
drwxr-xr-x 40 root root 4096 2010-04-11 15:50 lib
drwxr-xr-x 2 root staff 4096 2007-10-08 12:47 local
drwxrwxrwt 5 root root 100 2010-04-18 21:41 lock
drwxr-xr-x 17 root root 88375296 2010-04-18 06:47 log
drwx------ 2 root root 4096 2008-04-07 13:10 lost+found

Ich vermute, dass es deswegen so lange bei einem "ls /var/log" dauert, ehe das Verzeichnis angezeigt wird.

Die Frage ist, wie ich die Dateigröße nun wieder korrigieren kann? Hat jemand eine Idee?
 
A

Anonymous

Gast
Ronin schrieb:
drwxr-xr-x 17 root root 88375296 2010-04-18 06:47 log

Ich vermute, dass es deswegen so lange bei einem "ls /var/log" dauert, ehe das Verzeichnis angezeigt wird.
Die Frage ist, wie ich die Dateigröße nun wieder korrigieren kann? Hat jemand eine Idee?

Zur Erklärung: ich vermute mal es handelt sich um ext3/ext4
Ein Verzeichnis besteht aus der Inode und einem oder mehren Datenblöcken. In den Datenblöcken steht eine Art Tabelle mit Dateinamen zu Inode-zuordnung. Werden Dateien gelöscht bleiben die alten Einträge in den Datenblöcken des Verzeichnisses erhalten, sind dort aber als gelöscht markiert. Wird der selbe Dateiname wieder angelegt, ist die Wahrscheinlichkeit groß, das der alte Eintrag wieder verwendet wird. Werden jetzt wild viele Dateien mit unterschiedlichen Namen angelegt, und wieder gelöscht, dann hat das Verzeichnis hinterher viele Datenblöcke die es jedesmal lesen muss, in denen aber nur oder hauptsächlich gelöschte Verzeichnisseinträge stehen. Das scheint bei dir passiert zu sein, allerdings 21576 Datenblöcke für ein /var habe ich auch noch nicht gesehen. :schockiert: :schockiert: :schockiert: :schockiert: Das ist schon etwas sehr übertrieben. Schau vorsichtshalber noch mal mit
Code:
stat /var
nach der genauen Größe und der Anzahl der Blöcke. Möglich währe genauso aber auch ein Filesystemfehler, den würde " fsck -f "bemerken.


Ich würde folgendes machen. Den Rechner bei Gelegenheit rebooten und dabei bei booten von unten her in den Runlevel 1 fahren.
jetzt ein neues Verzeichnis "/var-neu" anlegen und alle Dateien und Verzeichnisse aus "/var" dort hin verschieben. Anschließend das jetzt leere "/var" löschen und "/var-neu" in "/var" umbenennen. Danach rebooten.

robi
 
Für das Anlegen eines neuen Verzeichnisses könntest Du auch z.B. den Eintrag "Rescue" von der SuSE-DVD nehmen.
Vergiss nicht dem neuen /var/log genau den gleichen Besitzer/Gruppe und die gleichen Berechtigungen zu geben.

Haveaniceday
 
OP
R

Ronin

Newbie
Manchmal ist die Lösung einfacher, als man denkt :)

Ach ja, es handelte sich um ein ext3-Dateisystem.
Die Größe kommt hin, denn er hatte eine Meeeeeeeenge falsche Dateien erstellt, ehe ich es gemerkt hatte, weil dann gar nix mehr ging.

Der Tipp mit dem neuen Verzeichnis und Inhalte umschieben, altes "/log" löschen und neues Verzeichnis in "/log" umbenennen klappte wunderbar.

Tausend Dank. Nun rennt der ls-Befehl wieder und ich muss mir meinen Kaffee vorher schon kochen gehen. :)
 
Oben