dmesg和/var/log/kern.log之间的差异



我正在修改kvm模块,并在内核代码中添加了printk语句。运行虚拟机后,printk会给我错误的地址和其他关于客户操作系统的信息。

我需要根据这些信息生成统计数据。当我使用dmesg时,我只能看到错误的地址在内核空间中,即它们的地址高于0XC0000000。(当VMEXIT发生时,需要错误地址,即我们从来宾模式切换到主机模式)

当我在kern.log中看到相同的统计数据时,我也会从用户空间中得到错误地址(低于0XC0000000)。因此,在我看来,dmesg的容量有限,并且提供的信息是kern.log中的一个子集。
我的kern.log文件太大了,可以从kern.log中删除旧数据吗?因为grep、join、awk等文本处理命令在文件上运行的时间太长了。

我的问题是:
dmesg和kern.log之间有什么区别
如何减少kern.log文件大小作为cron作业?(删除过去24小时内添加的所有数据)
有没有更好的方法从内核获得printf类型的功能?

/var/log/kern.log及其旋转日志(/var/log/kern.log.1/var/log/kern.log.2….)包含内核生成并由syslog处理的日志。

手册页中解释的dmesg适用于:

dmesg用于检查或控制内核环形缓冲区。

事实上,它将显示自上次启动以来/var/log/kern.log的最后16392个八位字节。

相关内容

  • 没有找到相关文章

最新更新