Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/logging/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Logging dmesg和/var/log/kern.log之间的差异_Logging_Linux Kernel_Printk - Fatal编程技术网

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

Logging dmesg和/var/log/kern.log之间的差异,logging,linux-kernel,printk,Logging,Linux Kernel,Printk,我正在修改kvm模块,并在内核代码中添加了printk语句。运行虚拟机后,printk会向我提供故障地址和有关来宾操作系统的其他信息 我需要根据此信息生成统计信息。当我使用dmesg时,我只能看到错误地址 在内核空间中,即它们的地址高于0XC0000000。(当VMEXIT发生时,即我们从来宾模式切换到主机模式时,需要错误地址) 当我在kern.log中看到相同的统计信息时,我还从用户空间(0XC0000000以下)获得错误地址。 因此,在我看来,dmesg的容量有限,并且给出的信息是kern.

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

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

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

我的问题是:
dmesg和kern.log之间有什么区别?
如何减少cron作业时的kern.log文件大小?(删除过去24小时内添加的所有数据)

有没有更好的方法从内核获取printf类功能

/var/log/kern.log
和他的循环日志(/var/log/kern.log.1/var/log/kern.log.2…)包含内核生成并由系统日志处理的日志

如手册页所述,手册页用于:

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


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

可以删除内容。。kern.log和kern.log.1kern.log.1的大小如此之大,以至于vi需要5分钟才能加载它。。。如果文件太长,我无法处理。。。。我正在考虑做
cat/dev/null>kern.log
cat/dev/null>kern.log.1
。。。擦除日志数据可以吗???@Deepthink是的,您可以擦除这些文件,但syslog只保留最后5个文件本身。在我的Ubuntu 16.04中,
dmesg
的输出几乎与
/var/log/kern.log
的最后16392个八位字节没有关联(我是通过
tail-c 16392
获得的)。一些(少数)行是相似的,但必须考虑输出格式、显示字段的差异,不清楚什么样的标志或
awk
后处理会产生可以使用
diff
清晰地建立为相同的输出。