gpt4 book ai didi

logging - dmesg 和/var/log/kern.log 之间的区别

转载 作者:行者123 更新时间:2023-12-04 02:08:03 32 4
gpt4 key购买 nike

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

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

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

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

最佳答案

/var/log/kern.log并且他的旋转日志(/var/log/kern.log.1/var/log/kern.log.2....)包含内核产生并由syslog处理的日志.

dmesg 正如手册页所解释的那样:

dmesg is used to examine or control the kernel ring buffer.



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

关于logging - dmesg 和/var/log/kern.log 之间的区别,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11412950/

32 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com