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?
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.
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
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