@tooljpさんをフォロー

2.dmesg

dmesg では Linux カーネルが起動した直後から出力したメッセージを表示します。Linux起動時から syslog デーモンが起動するまでは syslog デーモンによる /var/log/messageにログを出力できないため、カーネルはログを退避用メモリ(リングバッファと呼びます)に記録します。そのログを表示するコマンドが dmesg です。退避用メモリにはサイズがあるため古いログから順に削除されます。dmesg は cat /var/log/dmesg でも表示することが可能です。

以下の例では dmesg で出力されるログの中で最後の15行を表示しています。

# dmesg | tail -15
vboxsf: Successfully loaded version 4.1.12 (interface 0x00010004)
eth0: no IPv6 routers present
hrtimer: interrupt took 3752324 ns
[drm] Initialized drm 1.1.0 20060810
alloc irq_desc for 18 on node -1
alloc kstat_irqs on node -1
pci 0000:00:02.0: PCI INT A -> GSI 18 (level, low) -> IRQ 18
[drm] Supports vblank timestamp caching Rev 1 (10.10.2010).
[drm] No driver support for vblank timestamp query.
[drm] Initialized vboxvideo 1.0.0 20090303 for 0000:00:02.0 on minor 0
fuse init (API version 7.13)
SELinux: initialized (dev fuse, type fuse), uses genfs_contexts
ISO 9660 Extensions: Microsoft Joliet Level 3
ISO 9660 Extensions: RRIP_1991A
SELinux: initialized (dev sr0, type iso9660), uses genfs_contexts

以下の例では dmesg の結果を /tmp/dmesg.log に保存します。dmesg は古いログから順に削除されるので、必要に応じて保存しておきます。

# dmesg > /tmp/dmesg.log

ログバッファをクリアするには以下のコマンドを実行します。クリア前に標準出力にログを表示します。

# dmesg -c

コンソールに表示するログのプライオリティの設定も可能です。このプライオリティは syslog のプライオリティと同じです。指定したプライオリティ以上のログが記録されます。
(注)指定するオプションはコンソールに表示するプライオリティであり、このオプションを変更しても リングバッファにはすべてのログが記録されます。よって dmesg ではすべてのログが表示されます。セキュリティ上の理由によりメッセージをコンソールに表示させたくない場合にこのオプションでプライオリティを変更します。

# dmesg -n <プライオリティ>

プライオリティ コンソールへのログの表示対象
1 EMERG ・・・システムダウンの可能性があるほど重要な傷害。至急対応が必要。
2 ALERT ・・・緊急的な障害。至急対応が必要。
3 CRIT ・・・致命的なエラー。対応が必要。
4 ERR ・・・エラー。内容の確認と対応が必要。
5 WARNING ・・・警告。エラーではないが念のため確認が必要。
6 NOTICE ・・・通知。
7 INFO ・・・一般的な情報、インフォメーション。
8 DEBUG ・・・デバッグの情報。

リングバッファのサイズを変更することが可能です。サイズを変更するには以下のコマンドを使用します。デフォルトのサイズは 16384 です。

# dmesg -s <バッファサイズ>

(注)このページで紹介したオプションに関しては、複数指定した場合には最後のオプションのみ有効になります。

[Redhat Linux 障害解析ガイドへ戻る]