it-swarm-es.tech

¿Por qué / var / log / wtmp se vuelve tan grande? ¿Cómo inspeccionar archivos wtmp?

Acabo de notar un archivo wtmp de 640 MB en un contenedor 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 no se instaló (solo hice eso y forcé la rotación).

¿Hay registros allí que no se muestren por last (que deberían mostrar las últimas 1000 entradas, pero aparentemente solo hay 384)?.

De hojear rápidamente el wtmp/utmp página de manual, no parece que una sola entrada deba utilizar aproximadamente 1,6 MB.

¿Hay otro programa además de last para inspeccionar estos archivos?

7
blueyed

logrotate fue una buena idea.

Como cualquier archivo normal, wtmp podría haber sido "escaso" (cf. lseek (2) "agujeros" y ls -s), Lo que puede mostrar un tamaño de archivo extremo que en realidad ocupa poco disco. ¿Cómo llegó el agujero allí, si era un agujero? getty(8) y amigos podrían haber tenido un error. O un bloqueo del sistema y la reparación de fsck podrían haberlo causado.

Si está buscando ver el contenido sin procesar de wtmp, od o hd son buenos para echar un vistazo a los binarios y tienen el feliz efecto secundario de mostrar largas series de vacíos como tales.

A menos que vuelva a ocurrir, no lo pensaría mucho más. Un intruso marginalmente competente haría un mejor trabajo que eso, los contenidos no son tan interesantes y poco depende de ellos.

6
msw

Solo para ayudar a otros que puedan encontrar esto útil ...

¿Hay otro programa además de last para inspeccionar estos archivos?

Sí, prueba con utmpdump.

$ utmpdump /var/log/wtmp
7
Chucky

Si duda que el wtmp tenga agujeros, puede deshacerse de ellos con cp --sparse si tiene suficientes coreutils nuevas, o con fallocate --Dig-holes si usa la versión 2.25 de util-linux aún no publicada. Quizás un enfoque más práctico es volver a empaquetar el 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

Y si incluso entonces el archivo es bastante grande, simplemente gírelo y comprímalo.

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