dmesg可以在Linux中打印截断的行吗?
我将通过以下方式监控dmesg:dmesg可以在Linux中打印截断的行吗?,linux,kernel,Linux,Kernel,我将通过以下方式监控dmesg: dmesg -c 每1秒。我将在输出中查找特定字符串,然后根据找到的字符串执行操作 然而,我担心这种情况: 内核将20个字符的消息打印到dmesg环形缓冲区中,例如: printk(“你好,世界!!!!!!!”) 就在内核打印特定字符时。。。假设第10个字符,用户调用dmesg 当我们读取缓冲区时,最后一行不是完全由内核编写的 “dmesg-c”将打印什么 a) 仅包含前10个字符的截断行(Hello Worl) b) 省略挂起的行 然后,在“dmesg-
dmesg -c
每1秒。我将在输出中查找特定字符串,然后根据找到的字符串执行操作
然而,我担心这种情况:
- 内核将20个字符的消息打印到dmesg环形缓冲区中,例如: printk(“你好,世界!!!!!!!”)
- 就在内核打印特定字符时。。。假设第10个字符,用户调用dmesg
- 当我们读取缓冲区时,最后一行不是完全由内核编写的
rwxrwxrwx 1 root root 7 Jun 3 07:36 dmesg -> busybox
BusyBox v1.19.3 () multi-call binary.
Usage: dmesg [-c] [-n LEVEL] [-s SIZE]
我已经运行dmesg好几次了,我从来没有注意到截断的行,但最好知道这是否只是运气好
谢谢。如果您有一个运行的
syslogd
,并且它正在记录内核消息,您可能会发现只监视它的输出文件(例如tail-F/var/log/kern.log
)更容易。或者配置syslog守护进程来完成您想要的操作-rsyslog
有一些非常好的方法。@TobySpeight我们的内核将所有内容都记录在/var/log/messages中。日志非常大,我更喜欢grep一个较小的输入,比如清理后的dmesg输出。我们正在运行嵌入式Linux。另外,我会对消息文件提出同样的问题,它是否包括截断的行?将内核消息记录到/var/log/messages
?如果它是一个相当现代的系统日志,那么它应该能够为您将消息的子集复制到另一个文件中。例如,我的Debian系统有,它支持对消息内容进行过滤。它还支持记录到数据库,所以您甚至可以在需要时使用触发器。如果您有一个syslogd
正在运行,并且它正在记录内核消息,您可能会发现只监视其输出文件(例如tail-F/var/log/kern.log
)更容易。或者配置syslog守护进程来完成您想要的操作-rsyslog
有一些非常好的方法。@TobySpeight我们的内核将所有内容都记录在/var/log/messages中。日志非常大,我更喜欢grep一个较小的输入,比如清理后的dmesg输出。我们正在运行嵌入式Linux。另外,我会对消息文件提出同样的问题,它是否包括截断的行?将内核消息记录到/var/log/messages
?如果它是一个相当现代的系统日志,那么它应该能够为您将消息的子集复制到另一个文件中。例如,我的Debian系统有,它支持对消息内容进行过滤。它还支持记录到数据库,所以您甚至可以在需要时使用触发器。如果您有一个syslogd
正在运行,并且它正在记录内核消息,您可能会发现只监视其输出文件(例如tail-F/var/log/kern.log
)更容易。或者配置syslog守护进程来完成您想要的操作-rsyslog
有一些非常好的方法。@TobySpeight我们的内核将所有内容都记录在/var/log/messages中。日志非常大,我更喜欢grep一个较小的输入,比如清理后的dmesg输出。我们正在运行嵌入式Linux。另外,我会对消息文件提出同样的问题,它是否包括截断的行?将内核消息记录到/var/log/messages
?如果它是一个相当现代的系统日志,那么它应该能够为您将消息的子集复制到另一个文件中。例如,我的Debian系统有,它支持对消息内容进行过滤。它还支持记录到数据库,所以您甚至可以在需要时使用触发器。