dmesg 命令

| 选择喜欢的代码风格  

dmesg 命令补充说明:


dmesg 命令的默认操作是从内核环缓冲区读取所有消息。内核环缓冲区是一种数据结构,它记录与内核操作相关的消息。 环形缓冲区是一种特殊类型的缓冲区,总是一个恒定的大小,在新消息进入时删除最旧的消息。

dmesg 命令语法:


dmesg [options]

dmesg 命令选项:


-c:显示信息后,清除ring buffer中的内容;
-s<缓冲区大小>:预设置为8196,刚好等于ring buffer的大小;
-n:设置记录信息的层级。
-C, --清楚 ring buffer.
-D, --console-off 禁用打印到控制台的消息。
-d, --show-delta 显示消息之间花费的时间戳和时间增量。 如果与--notime一起使用,则仅打印没有时间戳的时间增量。
-E, --console-on 启用打印消息到控制台。
-f, --facility list 将输出限制为已定义(逗号分隔)的设施列表。 对于所有支持的设施,请参阅--help输出。
-h, --help 打印帮助文本并退出。
-k, --kernel 打印内核消息。
-l, --level list 将输出限制为已定义(逗号分隔)的级别列表。 对于所有支持的级别,请参阅--help输出。
-n, --console-level level 设置将消息记录到控制台的级别。 级别是级别名称的级别编号或缩写。 
      例如,-n 1或-n警报可防止除紧急(恐慌)消息之外的所有消息出现在控制台上。 
      所有级别的消息仍然写入/ proc / kmsg,因此syslogd(8)仍可用于精确控制内核消息的显示位置。 
      使用-n选项时,dmesg不会打印或清除内核环缓冲区。 对于所有支持的级别,请参阅--help输出。
-r, --raw 打印原始消息缓冲区,即不剥离日志级别前缀。
-s, --buffer-size size 使用大小的缓冲区来查询内核环缓冲区。 默认情况下为16392。 如果已将内核缓冲区设置为大于默认值,则可以使用此选项查看整个缓冲区。
-T, --ctime 打印人类可读时间戳。 时间戳可能不准确; 在系统SUSPEND / RESUME之后,不会更新用于日志的时间源。
-t, --notime 不要打印内核的时间戳。
-u, --userspace 打印用户空间消息。
-V, --version 输出版本信息并退出。
-x, --decode 将设施和级别(优先级)编号解码为人类可读的前缀。

dmesg 命令实例


[root@TestMaster /var/log]
$ dmesg |head
[    0.000000] Initializing cgroup subsys cpuset
[    0.000000] Initializing cgroup subsys cpu
[    0.000000] Initializing cgroup subsys cpuacct
[    0.000000] Linux version 3.10.0-957.10.1.el7.x86_64 (mockbuild@kbuilder.bsys.centos.org) (gcc version 4.8.5 20150623 (Red Hat 4.8.5-36) (GCC) ) #1 SMP Mon Mar 18 15:06:45 UTC 2019
[    0.000000] Command line: BOOT_IMAGE=/boot/vmlinuz-3.10.0-957.10.1.el7.x86_64 root=UUID=312381f6-4571-4cfa-b93b-7add4cbb8059 ro crashkernel=auto rhgb LANG=en_US.UTF-8 console=tty0 console=ttyS0,115200n8
[    0.000000] e820: BIOS-provided physical RAM map:
[    0.000000] BIOS-e820: [mem 0x0000000000000000-0x000000000009fbff] usable
[    0.000000] BIOS-e820: [mem 0x000000000009fc00-0x000000000009ffff] reserved
[    0.000000] BIOS-e820: [mem 0x00000000000f0000-0x00000000000fffff] reserved
[    0.000000] BIOS-e820: [mem 0x0000000000100000-0x00000000bffd9fff] usable

仅显示与内存使用相关的内核消息:

[root@TestMaster /var/log]
$ dmesg | grep -i memory
[    0.000000] Base memory trampoline at [ffff8f9340099000] 99000 size 24576
[    0.000000] Reserving 161MB of memory at 688MB for crashkernel (System RAM: 8191MB)
[    0.000000] Early memory node ranges
[    0.000000] PM: Registered nosave memory: [mem 0x0009f000-0x0009ffff]
[    0.000000] PM: Registered nosave memory: [mem 0x000a0000-0x000effff]
[    0.000000] PM: Registered nosave memory: [mem 0x000f0000-0x000fffff]
[    0.000000] PM: Registered nosave memory: [mem 0xbffda000-0xbfffffff]
[    0.000000] PM: Registered nosave memory: [mem 0xc0000000-0xfeffbfff]
[    0.000000] PM: Registered nosave memory: [mem 0xfeffc000-0xfeffffff]
[    0.000000] PM: Registered nosave memory: [mem 0xff000000-0xfffbffff]
[    0.000000] PM: Registered nosave memory: [mem 0xfffc0000-0xffffffff]
[    0.000000] Memory: 4991300k/9437184k available (7668k kernel code, 1049120k absent, 400700k reserved, 6051k data, 1876k init)
[    0.000000] please try 'cgroup_disable=memory' option if you don't want memory cgroups
[    0.357447] Initializing cgroup subsys memory
[    1.004073] Freeing initrd memory: 18472k freed
[    1.128259] Non-volatile memory driver v1.3
[    1.130740] crash memory driver: version 1.1
[    1.243076] Freeing unused kernel memory: 1876k freed
[    1.248183] Freeing unused kernel memory: 512k freed
[    1.250888] Freeing unused kernel memory: 600k freed
[    1.700781] [TTM] Zone  kernel: Available graphics memory: 4004426 kiB
[    1.702519] [TTM] Zone   dma32: Available graphics memory: 2097152 kiB

查看硬盘基础信息:

dmesg | grep sda

[    2.442555] sd 0:0:0:0: [sda] 488281250 512-byte logical blocks: (250 GB/232 GiB)
[    2.442590] sd 0:0:0:0: [sda] Write Protect is off
[    2.442592] sd 0:0:0:0: [sda] Mode Sense: 00 3a 00 00
[    2.442607] sd 0:0:0:0: [sda] Write cache: enabled, read cache: enabled, doesn't support DPO or FUA
[    2.447533]  sda: sda1
[    2.448503] sd 0:0:0:0: [sda] Attached SCSI disk


发表评论