psacct i logrotate

Jakub Bogusz qboosh w pld.org.pl
Wto, 28 Sty 2003, 22:57:41 CET


$%&*#@$%$#%^$^&#^&
Właśnie udało mi się rozwiązać Zagadkę Znikającego Miejsca na /var.

Od jakiegoś czasu obserwowałem dziwne zjawisko - partycja /var coraz
bardziej się zapychała, pomimo skracania okresu ekspirowania newsów
(zresztą du -sh /var/* podawało tylko 25% zajętego miejsca na /var).

Próbowałem restartować wszystkie procesy pokazywane przez
`lsof | grep var` (żeby zwolnić miejsce po usuniętych, ale nadal
otwartych plikach) - dawało się odzyskać chwilowo najwyżej kilkanaście
MB.

Natomiast pomagał reboot (poprzedni był ponad 50 dni temu[1], więc
dopiero teraz to tak wyraźnie zauważyłem) - zwolniło się ponad 700MB.
WTF? Przecież Linux tak się nie zachowuje???
Zastanowiło mnie tylko, dlaczego tak długo przy kładzeniu systemu trwa
"turning off swap and accounting"...


Wnioski:
- rc-scripts aktualnie włączają accounting jeśli tylko pakiet psacct
  jest zainstalowany - i nie da się tego wyłączyć w inny sposób niż
  odinstalowanie pakietu (IMO powinna być jakaś opcja w sysconfig).

  Daaawno temu zainstalowałem sobie psacct, chwilę pobawiłem się,
  wyłączyłem i o nim zapomniałem. A od następnego startu systemu był
  włączony cały czas...

- samo włączenie byłoby mało szkodliwe, gdyby nie niesprawna
  konfiguracja logrotate (brak skryptu postrotate! efekt: po usunięciu
  starego pliku kernel cały czas pisze do tego usuniętego pliku,
  zapychając dysk... a lsof nawet tego nie pokazuje).
  Konfiguracja logrotate dla /var/log/pacct powinna wyglądać jakoś tak
  (oprócz tego co jest):

	create 640 root root
	postrotate
		if accounting_włączony_w_sysconfig ; then
			/sbin/accton /var/log/pacct
		fi
	endscript


Coś więcej?
Grrr, nie chcę więcej takich zagadek.


[1] teraz wewn. modem (ISA) stwierdził, że uptime jest za duży,
i postanowił się zawiesić, wymagając rebootu[2]

[2] swoją drogą - jeżeli BIOS przy starcie jest w stanie ten modem
zresetować - może da się to jakoś osiągnąć z poziomu Linuksa? Parę razy
próbowałem kombinować setserialem albo usuwać i wczytywać moduł - bez
skutku.


-- 
Jakub Bogusz    http://www.cs.net.pl/~qboosh/



Więcej informacji o liście dyskusyjnej pld-devel-pl