Acabei de notar um arquivo wtmp de 640 MB em um contêiner virtual (Ubuntu Hardy).
# last -n 10000 -f /var/log/wtmp.1|wc -l
384
# ls -hl /var/log/wtmp.1
-rw-rw-r-- 1 root utmp 641M 21. Sep 07:49 /var/log/wtmp.1
logrotate não foi instalado (eu simplesmente fiz isso e forçou a rotação).
Existem registros lá que não estão sendo exibidos por last
(que deveria mostrar as últimas 1000 entradas, mas aparentemente existem apenas 384).
De deslizar rapidamente o wtmp/utmp
página man, não parece que uma única entrada deva usar cerca de 1,6 MB.
Existe outro programa além de last
para inspecionar esses arquivos?
logrotate
foi uma boa ideia.
Como qualquer arquivo regular, wtmp poderia ser "esparso" (cf. lseek (2) "buracos" e ls -s
) Que pode mostrar um tamanho de arquivo extremo que realmente ocupa pouco disco. Como o buraco foi parar lá, se era um buraco? getty(8)
e amigos podem ter tido um bug. Ou uma falha do sistema e reparo do fsck podem ter causado isso.
Se você está procurando ver o conteúdo bruto de wtmp, od
ou hd
são bons para dar uma olhada nos binários e têm o feliz efeito colateral de mostrar longas execuções de vazio como tal.
A menos que ocorra novamente, eu não pensaria muito mais nisso. Um intruso marginalmente competente faria um trabalho melhor do que isso, os conteúdos não são tão interessantes e pouco depende deles.
Apenas para ajudar outras pessoas que possam achar isso útil ...
Existe outro programa além de
last
para inspecionar esses arquivos?
Sim, tente utmpdump
.
$ utmpdump /var/log/wtmp
Se você duvida que o wtmp possa ter buracos, você pode se livrar deles com cp --sparse
se você tiver coreutils novos suficientes, ou com fallocate --Dig-holes
se você usa a versão 2.25 do util-linux ainda não lançada. Talvez uma abordagem mais prática seja reembalar o wtmp.
utmpdump /var/log/wtmp | utmpdump -r > /tmp/newtmp
ls -l /var/log/wtmp /tmp/newtmp # if significantly smaller
chown root:root /tmp/newtmp
chmod 0554 /tmp/newtmp
mv /tmp/newtmp /var/log/wtmp
E se mesmo assim o arquivo for bastante grande, basta girar e compactar.
mv /var/log/wtmp{,.1}
gzip -9 /var/log/wtmp.1