logging - diferencia entre dmesg y/var/log/kern.log
linux-kernel printk (1)
/var/log/kern.log
y sus registros girados (/var/log/kern.log.1 /var/log/kern.log.2 ....) contiene los registros producidos por el kernel y manejados por syslog
.
dmesg
como se explica en la página del manual es para:
dmesg se usa para examinar o controlar el buffer del anillo kernel.
De hecho, mostrará los últimos 16392 octetos de /var/log/kern.log desde el último arranque.
Estoy modificando el módulo kvm y agregué las instrucciones printk en el código del kernel. Después de ejecutar la máquina virtual, printk me da la dirección falsa y otra información sobre el sistema operativo invitado.
Necesito generar la estadística a partir de esta información. Cuando uso dmesg, solo puedo ver la dirección defectuosa en el espacio del kernel, es decir, su dirección es superior a 0XC0000000. (Se necesitan direcciones erróneas cuando ocurre VMEXIT, es decir, pasamos del modo invitado al modo host)
Cuando veo las mismas estadísticas en kern.log, también obtengo una dirección de fallas desde el espacio de usuario (debajo de 0XC0000000). Entonces me parece que dmesg tiene una capacidad limitada, y la información que se da es un subconjunto de kern.log.
Mi archivo kern.log es demasiado grande como para borrar datos antiguos de kern.log porque los comandos de procesamiento de texto como grep, join, awk tardan demasiado en ejecutarse en el archivo.
Mi pregunta es:
¿Cuál es la diferencia entre dmesg y kern.log?
Cómo reducir el tamaño del archivo kern.log como tarea cron (borrar todos los datos agregados en las últimas 24 horas)
¿Hay alguna forma mejor de obtener funcionalidades de impresión de kernel?