我正在尝试在我的 dmesg 输出中编写一些自定义消息。我试过:
logger "Hello"
Run Code Online (Sandbox Code Playgroud)
但这不起作用。它退出没有错误,但没有“Hello”出现在以下输出中:
dmesg
Run Code Online (Sandbox Code Playgroud)
我使用的是 Fedora 9,似乎没有运行 syslogd/klogd 守护进程。但是,我所有的内核消息都成功写入了 dmesg 缓冲区。
任何的想法?
我在dmesg输出中有(例如)这个日志条目:
[600711.395348] do_trap: 6 callbacks suppressed
Run Code Online (Sandbox Code Playgroud)
是否有可能将此“dmesg”时间转换为“实时”时间以了解此事件何时发生?
我希望有人可以帮助我解决这个奇怪的问题。
我想我知道它为什么会发生,但我不知道如何解决它。也许是因为 BIOS 时间设置不正确或类似的原因。但我不想更改大约 400 多台服务器的 BIOS 时间。(或更换BIOS电池)
root@spool:~# echo TEST > /dev/kmsg
root@spool:~# dmesg -T | tail -1
[Mon Feb 17 04:57:03 2014] TEST
root@spool:~# date
Mon Feb 17 11:45:17 CET 2014
Run Code Online (Sandbox Code Playgroud)
服务器正在运行 ntp 以进行时间同步。
这里有人知道如何在操作系统中解决这个问题吗?
Linux spool 3.2.0-4-amd64 #1 SMP Debian 3.2.46-1+deb7u1 x86_64 GNU/Linux
Run Code Online (Sandbox Code Playgroud)
为什么在回显到/dev/kmsg时,我的消息的日期/时间dmesg与系统日期/时间不同步?
我正在运行一些基准测试。我的基准运行程序监视实验之间的 dmesg 缓冲区,寻找可能影响性能的任何内容。今天它抛出了这个:
[2015-08-17 10:20:14 WARNING] dmesg 好像变了!差异如下: --- 2015-08-17 09:55:00 +++ 2015-08-17 10:20:14 @@ -825,3 +825,4 @@ [3.802206][drm]启用RC6状态:RC6开启,RC6p关闭,RC6pp关闭 [7.900533]r8169 0000:06:00.0 eth0:链接 [7.900541]IPv6:ADDRCONF(NETDEV_CHANGE):eth0:链接准备好 +[236832.221937] perf 中断时间太长 (2504 > 2500),将 kernel.perf_event_max_sample_rate 降低到 50000
经过一番搜索,我现在知道这与 linux 内核中名为“perf”的分析子系统有关。我认为我们不需要这个,所以我想完全禁用它。
再次搜索,我发现 sysctlperf_cpu_time_max_percent可以提供帮助。这里有人建议通过将其设置为 0 来禁用。在这里阅读更多内容:
perf_cpu_time_max_percent:
向内核提示应该允许使用多少 CPU 时间来处理性能采样事件。如果 perf 子系统被告知其样本超过此限制,它将降低其采样频率以尝试减少其 CPU 使用率。
一些性能采样发生在 NMI 中。如果这些样本意外地花费了太长时间来执行,则 NMI 可能会彼此堆叠在一起,以至于不允许执行任何其他操作。
0:禁用该机制。无论 CPU 时间有多长,都不要监视或更正 perf 的采样率。
1-100:尝试将 perf 的采样率限制到 CPU 的这个百分比。注意:内核计算每个样本事件的“预期”长度。这里的 100 表示预期长度的 100%。即使将其设置为 100,如果超过此长度,您仍可能会看到样本节流。如果您真的不关心消耗了多少 CPU,则设置为 0。
这听起来像 0 意味着不再检查分析采样率,但频率子系统保持运行(?)。
任何人都可以阐明如何使用 freq 完全禁用内核分析吗? …
我想用时间戳读取我的 Centos 5.x dmesg,我该怎么做?
我刚刚第一次重新启动了我的监控服务器,下面开始填充屏幕:
Jul 11 23:52:30 monit kernel: [ 25.255908] ata1.00: exception Emask 0x0 SAct 0x0 SErr 0x0 action 0x0
Jul 11 23:52:30 monit kernel: [ 25.256170] ata1.00: BMDMA stat 0x24
Jul 11 23:52:30 monit kernel: [ 25.256278] ata1.00: failed command: READ DMA
Jul 11 23:52:30 monit kernel: [ 25.256410] ata1.00: cmd c8/00:c0:20:68:35/00:00:00:00:00/e0 tag 0 dma 98304 in
Jul 11 23:52:30 monit kernel: [ 25.256416] res 51/40:9f:41:68:35/00:00:00:00:00/e0 Emask 0x9 (media error)
Jul 11 23:52:30 monit kernel: [ 25.256809] ata1.00: status: { DRDY …Run Code Online (Sandbox Code Playgroud) 我不断在 /var/log/messages 中收到这些消息:
Mar 8 23:17:25 saas1 kernel: martian source 169.254.1.1 from 169.254.95.118, on dev usb0
Mar 8 23:17:25 saas1 kernel: ll header: ff:ff:ff:ff:ff:ff:00:21:5e:de:1b:be:08:06
Run Code Online (Sandbox Code Playgroud)
每 5 秒一次又一次地出现另一份完全相同的报告。
我在 169.254.95.118 上做了一个 whois 并收到一条奇怪的消息:
http://whois.arin.net/rest/nets;q=169.254.95.118?showDetails=true&showARIN=false
This is the "link local" block. It was set
aside for this special use in the Standards
Track document, RFC 3927 and was further
documented in the Best Current Practice
RFC 5735, which can be found at:
http://www.rfc-editor.org/rfc/rfc3927.txt
http://www.rfc-editor.org/rfc/rfc5735.txt
It is allocated for communication between hosts
on …Run Code Online (Sandbox Code Playgroud) dmesg 如何区分不同的日志级别?
我可以执行以查看所有错误日志,但是当我仅使用或仅使用文件dmesg -l err查看数据时,日志文本中没有可以与.dmesgcat/var/log/dmesgerrwarn
dmesg 如何存储日志级别的这种差异?它是如何工作的?
为了调试发生此问题的原因,在容器上运行以下命令:
docker run -it <dockerImageName> dmesg
Run Code Online (Sandbox Code Playgroud)
结果是:
dmesg: read kernel buffer failed: Permission denied
Run Code Online (Sandbox Code Playgroud)
尝试
docker run -it <dockerImageName> sudo dmesg返回相同的问题我正在运行 Debian 系统,发现dmesg命令的输出非常有帮助。
有人可以向我解释 dmesg 命令输出什么信息吗?它是否与系统日志中的 kern.* 消息 1:1 相关?