Pourquoi / var / log / wtmp devient-il si énorme? Comment inspecter les files wtmp?

Juste remarqué quelque 640MB wtmp file dans un conteneur virtuel (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'a pas été installé (je viens de le faire et forcé à tourner).

Y at-il des loggings qui ne sont pas affichés par le last (qui devrait montrer les 1000 dernières inputs, mais apparemment il n'y en a que 384).

De l'écrémage rapide de la page de manuel wtmp/utmp , il ne semble pas qu'une seule input devrait utiliser environ 1,6 Mo.

Existe-t-il un autre programme en plus d'inspecter ces files?

logrotate était une bonne idée.

Comme n'importe quel file ordinaire, wtmp aurait pu être "sparse" (voir lseek (2) "trous" et ls -s ) qui peut montrer une taille de file extrême qui occupe réellement peu de disque. Comment est-ce que le trou est arrivé là, si c'était un trou? getty(8) et ses amis auraient pu avoir un bug. Ou un crash du système et une réparation fsck pourraient l'avoir causé.

Si vous cherchez à voir le contenu brut de wtmp, od ou hd sont bons pour jeter un coup d'oeil aux binarys et avoir l'effet secondaire heureux de montrer de longues séries de vide en tant que tel.

À less que cela ne se reproduise, je ne lui donnerais pas beaucoup plus de reflection. Un intrus marginalement compétent ferait un meilleur travail que cela, le contenu n'est pas très intéressant, et peu dépend d'eux.

Juste pour aider les autres qui pourraient find cela utile …

Existe-t-il un autre programme en plus d'inspecter ces files?

Oui, essayez utmpdump .

 $ utmpdump /var/log/wtmp 

Si vous doutez que le wtmp puisse avoir des trous, vous pourriez vous en débarrasser avec cp --sparse si vous avez assez de coreutils, ou avec fallocate --dig-holes si vous n'utilisez pas encore la version 2.25 d'util-linux. Peut-être une approche plus pratique consiste à remballer le 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 

Et si même alors le file est plutôt volumineux, il suffit de tourner et de compresser.

 mv /var/log/wtmp{,.1} gzip -9 /var/log/wtmp.1