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