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

var Verzeichnis läuft voll

LordKnox

Newbie
Hallo,
mein var verzeichnis welches als 10GB Partition gemountet und mit
dem reiserfs formatiert ist, läuft ca. nach einem 1/4 Jahr voll.
(Logfiles natürlich bereinigt)

z.B.:
pcform:~ # df
Filesystem 1K-blocks Used Available Use% Mounted on
/dev/sda1 52434488 3433004 49001484 7% /
udev 2025796 128 2025668 1% /dev
/dev/sda9 650106552 369714384 280392168 57% /home
/dev/sda5 10490040 1089292 9400748 11% /srv
/dev/sda6 10490040 7428116 3061924 71% /var
/dev/sda8 209714040 46689328 163024712 23% /work
pcform:~ #

pcform:~ # du /var
1289126 /var
pcform:~ #

Laut du sollten ja nur ca. 1.3GB belegt sein. Nach einem Neustart ist kurzzeitig wieder alles ok
und df und du zeigen das gleiche an. Bis es wieder es sich langsam wieder füllt.
Wie kann ich das bereinigen ohne das ich den Server neustarten muss ?
 

spoensche

Moderator
Teammitglied
Das sich /var während des Betriebs füllt ist völlig normal, da dort ja sämtliche Logfiles angelegt und in diese auch geschrieben wird.
Logfiles können unter Umständen ganz schön anwachsen. Aus diesem Grund gibt es das Programm logrotate, das Logfiles mit einem bestimmten Alter (Zeitstempel) komprimiert und nach dem komprimieren der Logfiles neue Logfiles ohne Inhalt anlegt, in die die auftretenden Meldungen dann wieder geschrieben werden, (Die Logfiles werden also rotiert)

In der Partiton oder dem Verzeichnis /var werden nicht nur die Logfiles gespeichert sondern z.B. auch MySQL Datenbanken, Druckerwarteschlangen.

Ist bei dir Logrotate installiert? (Das ist normalerweise standardmäßig der Fall)

Wieviel Platz verwendet das Verzeichnis /var/log? Bitte die Ausgabe von

Code:
du -hs /var/log

posten.

Welches Logfile benötigt den meisten Plattenplatz? Bitte die Ausgabe von

Code:
ls -lh /var/log/* | sort -nr

Infomier uns am besten mal darüber, was bei dir in /var den meisten Plattenplatz benötigt.

PS:

Wenn du den Befehl df mit der Option -h ausführst, werden die Partitionsgrößen (Gesamtgröße, benutzter und noch verfügbarer Platz) human readable (für Menschen lesbar, z.B. Megabyte, Abkürzung M) angezeigt. Beim Aufruf ohne Parameter wird der Plattenplatz in Bytes ausgegeben.

Wenn du den Befehl du mit den Optionen -hs aufrufst, wird die Gesamtgröße (die Größe der Dateien wird addiert) in einem human readable Format ausgegeben. Selbiges bewirk die Option -h des Befehls ls.
 
OP
L

LordKnox

Newbie
Das ist ja gerade mein Problem,
(wie ich schon oben schrieb)
ein:
pcform:~ # du -hs /var/log
74M /var/log
oder das ganze var Verzeichnis:
pcform:~ # du -hs /var
1.3G /var

passt nicht zu:

pcform:~ # df
Filesystem 1K-blocks Used Available Use% Mounted on
/dev/sda1 52434488 3433004 49001484 7% /
udev 2025796 128 2025668 1% /dev
/dev/sda9 650106552 370537728 279568824 57% /home
/dev/sda5 10490040 1089340 9400700 11% /srv
/dev/sda6 10490040 8179180 2310860 78% /var
/dev/sda8 209714040 46689328 163024712 23% /work
pcform:~ #

d.h. ich finde nicht was den Platz belegt.
 
A

Anonymous

Gast
Es ist möglich, das da von irgend einem Prozess eine File noch geöffent ist und eventuell auch noch weiterbeschrieben wird obwohl die Datei im Filesystem schon lange gelöscht worden ist. Bei temporären Dateien und Prozessen die ab und an auch mal aus irgend einem Grund hängen bleiben ist das nun mal so. Das kann zB auch dadurch passieren, dass du einfach irgend welche großen Logfiles löscht, aber der Prozess der sie erstellt weiterläuft, der schreibt immer weiter in die Datei und die wird immer größer und größer, hat aber keinen Dateinamen mehr (ist unlinked), wird also von den normalen Tools nicht mehr gefunden und deren Größe dann auch nicht mitgezählt. Erst wenn der Prozess beendet wird, dann wird auch die Datei entgültig gelöscht und der Speicherplatz freigegeben. Gelöschte Dateien in /var die aber im System noch offen sind würdest du wie folgt finden
Code:
lsof -a +L1 /var
Wenn es solche Dateien gibt, dann müsste der Prozess dazu beendet oder gekillt werden,bzw das Programm dazu neu gestartet werden, dann ist wieder Platz auch ohne reboot.

robi
 
OP
L

LordKnox

Newbie
Danke, das ist mal ein guter Tip, es gab tatsächlich ein grosses Log File vom Tivoli Backup Programm
welches ich gelöscht habe, aber kein Speicherplatz wurde freigegeben.

Werde ich gleich Montag mal ausprobieren:)
 
A

Anonymous

Gast
kannst auch gleich mal so testen wenn du ein Linux rumliegen hast.

top zeigt mir das mein firefox ständig irgendwas zu tun hat. Kannst auch jeden anderen Prozess nehmen der regelmäßig in top ganz oben erscheint, sollte nur wenn möglich ein Prozess von dir sein, das Ganze möglichst nicht als root und nicht auf dem wichtigsten Server im Haus veranstalten ;)
4210 rob 15 0 317m 107m 22m R 46.5 21.8 113:41.14 firefox-bin
Diesen Prozess zapfen wir mal mit strace an und leiten die Ausgabe in eine Datei um. Den ganzen Prozess schicken wir in den Hintergrund.
hier mal die Konsolausgaben von meinem Test.
Code:
rob@priv0001:~> strace -p 4210 2> ~/müll.tmp &
[1] 8508
rob@priv0001:~> ls -l müll.tmp
-rw-r--r-- 1 rob users 3302150  3. Apr 22:10 müll.tmp
rob@priv0001:~> ls -l müll.tmp
-rw-r--r-- 1 rob users 3748711  3. Apr 22:10 müll.tmp
rob@priv0001:~> rm müll.tmp
rob@priv0001:~> ls -l müll.tmp
ls: Zugriff auf müll.tmp nicht möglich: Datei oder Verzeichnis nicht gefunden
rob@priv0001:~> lsof -a +L1 /home
COMMAND  PID USER   FD   TYPE DEVICE     SIZE NLINK    NODE NAME
strace  8508  rob    2w   REG    3,3 13155124     0 1606056 /home/rob/müll.tmp (deleted)
rob@priv0001:~> lsof -a +L1 /home
COMMAND  PID USER   FD   TYPE DEVICE     SIZE NLINK    NODE NAME
strace  8508  rob    2w   REG    3,3 13887963     0 1606056 /home/rob/müll.tmp (deleted)
rob@priv0001:~> lsof -a +L1 /home
COMMAND  PID USER   FD   TYPE DEVICE     SIZE NLINK    NODE NAME
strace  8508  rob    2w   REG    3,3 14493429     0 1606056 /home/rob/müll.tmp (deleted)
rob@priv0001:~> kill -9 8508
rob@priv0001:~> lsof -a +L1 /home
[1]+  Getötet                strace -p 4210 2>~/müll.tmp
rob@priv0001:~> lsof -a +L1 /home
Man sieht mit ls wie die Datei langsam wächst. Dann wird die Datei gelöscht, und ist mit ls nicht mehr sichtbar.
Aber wie man sieht sie wächst im Hintergrund dennoch ständig weiter, mit lsof ist das sichtbar. Bis der Prozess gekillt wurde. Dann ist sie weg.

robi
 
Oben