GNU/Linux >> Linux の 問題 >  >> Ubuntu

dmesgLinuxコマンドの使用方法

はじめに

dmesg commandは、カーネルリングバッファから取得したカーネル関連のメッセージを表示するLinuxユーティリティです。リングバッファには、ハードウェア、デバイスドライバの初期化、およびシステムの起動中に発生するカーネルモジュールからのメッセージに関する情報が格納されます。

dmesg このコマンドは、ハードウェア関連のエラー、警告のトラブルシューティング、およびデバイス障害の診断に非常に役立ちます。

このチュートリアルでは、 dmesgの使用方法を学習します Linuxのコマンド。

前提条件

  • Linuxを実行しているコンピュータシステム。
  • 管理者権限を持つユーザーアカウント。

構文とオプション

基本的なdmesg コマンド構文は次のとおりです。

dmesg [options]

次の表に、最も一般的に使用される dmesgを示します。 オプション:

オプション 説明
-C、-clear リングバッファをクリアします。
-c、-read-clear リングバッファの内容を出力してからクリアします。
-f、--facility [list] 出力を指定されたコンマ区切りの機能に制限します[list]
-H、-human 人間が読める形式の出力を有効にします。
-L、-color [=auto | never | always] 出力に色を追加します。 [auto | never | always]を省略します 引数のデフォルトはautoです。
-l、-level [list] 出力を指定されたコンマ区切りのレベルリストに制限します。
-noescape 印刷できない文字や安全でない可能性のある文字を自動的にエスケープする機能を無効にします。
-S、-syslog dmesgに指示します syslogカーネルインターフェイスを使用してカーネルメッセージを読み取ります。デフォルトでは、 / dev / kmsgを使用します syslogの代わりに 。
-s、-buffer-size [size] 指定されたバッファサイズを使用して、カーネルリングバッファをクエリします。デフォルト値は16392です。
-T、-ctime 人間が読める形式のタイムスタンプを出力します。
-t、-notime dmesgに指示します カーネルのタイムスタンプを出力しないようにします。
-time-format [format] 指定された[format]を使用してタイムスタンプを出力します 。使用できる形式はctime reltime デルタ 、および iso dmesg ISO-8601形式の実装)。
-w、-follow dmesgを保持します 実行して新しいメッセージを待っています。この機能は、読み取り可能な / dev / kmsgを備えたシステムでのみ使用できます。 ファイル。
-x、-decode ファシリティ番号とレベル番号を人間が読める形式のプレフィックスにデコードします。
-h、-help 使用可能なすべてのオプションを含むヘルプファイルを表示します。

Linuxdmesgコマンドの例

例は一般的なdmesg コマンドの使用例。

カーネルリングバッファからのすべてのメッセージを表示する

dmesgを呼び出す オプションがないと、カーネルバッファ全体が出力され、停止することなく、出力をナビゲートする方法がありません。

sudo dmesg

上記の例は、部分的な dmesgです。 コマンド出力。ナビゲーションを簡単にし、読みやすくするために、 dmesgをパイプします lessなどのターミナルページャに出力します 詳細 、または grepを使用します 。

例:

sudo dmesg | less

配管dmesg 少ない 検索機能を使用して、アイテムを見つけて強調表示することができます。 /を押して検索を有効にします 。 スペースバーを使用して次の画面に移動します 、または Bを使用してリバース 鍵。 Qを押して出力を終了します 。

色付きのメッセージを表示する

デフォルトでは、 dmesg 色付きの出力を生成します。出力に色が付いていない場合は、 -Lを使用します 色付けするオプション。

sudo dmesg -L

色付きの出力をオフにするには、 -color =neverを追加します dmesgのオプション 。次のコマンドを実行します:

sudo dmesg --color=never

デフォルトのdmesg 出力の色が均一になりました。

到着時にメッセージを表示する

-follow を使用して、カーネルリングバッファをリアルタイムで監視します オプション。このオプションは、システムの起動後にハードウェアまたはカーネルモジュールに関連する新しいメッセージを待つようにコマンドに指示します。

次のdmesgを実行します リアルタイムのカーネルリングバッファ監視を有効にするコマンド:

sudo dmesg --follow

このコマンドは、ターミナルウィンドウの下部に新しいメッセージを表示します。 Ctrl + Cを使用してプロセスを停止します 。

特定の用語を検索

特定の問題やハードウェアメッセージを検索するときは、 dmesgをパイプします grepに出力 特定の文字列またはパターンを検索します。

たとえば、メモリに関するメッセージを探している場合は、次のコマンドを実行します。

dmesg | grep -i memory

出力には、 memoryを含むバッファからのすべての行が表示されます ストリング。 -i (大文字と小文字を区別しない)スイッチはケア感度を無視します。

または、USB、シリアルポート、ネットワーク、またはハードドライブに関するバッファメッセージを探している場合は、次のコマンドを実行します。

USB

dmesg | grep -i usb

シリアルポート

dmesg | grep -i tty

ネットワーク

dmesg | grep -i eth

ハードドライブ

sudo dmesg | grep -i sda

-E を追加して、一度に複数の用語を検索します grepのオプション パイプ区切り文字で区切られた、引用符で囲まれた検索語を提供します。例:

sudo dmesg | grep -E "memory|tty"

出力には、検索語のいずれかを含むすべてのメッセージが出力されます。

dmesgログの読み取りとクリア

-c -read-clear )オプションを使用すると、 dmesgをクリアできます 印刷後にログに記録します。バッファをクリアすると、最新の再起動からの有効なメッセージのみが表示されます。

次のコマンドを実行します:

sudo dmesg -c

dmesgを再実行します ログがクリアされたため、出力はありません。

dmesgログでタイムスタンプを有効にする

dmesgでタイムスタンプを有効にする -Hを追加して出力します -人間 )オプション。人間が読める形式の出力を生成し、出力をポケットベルに自動的にパイプします(少ない

次のコマンドを実行します:

sudo dmesg -H

このコマンドは、解決された日付と時刻を分単位で含むタイムスタンプを追加します。同じ分のイベントには、秒とナノ秒のラベルが付けられます。

Q を押して、ポケットベルを終了します 。

人間が読めるタイムスタンプを有効にする

-T を使用して、人間が読める形式のタイムスタンプを有効にします -ctime ) オプション。このオプションは、出力からナノ秒の精度を削除しますが、タイムスタンプを追跡する方が簡単です。

sudo dmesg -T

出力のタイムスタンプは標準の日付と時刻であり、解像度は分単位です。同じ分に発生した各アクションに同じタイムスタンプが付加されます。

タイムスタンプ形式を選択

-time-format [format]を使用します タイムスタンプ形式を選択するオプション。使用可能な形式は次のとおりです。

  • ctime
  • reltime
  • デルタ
  • notime
  • iso

たとえば、 isoを使用するには フォーマット、実行:

sudo dmesg --time-format=iso

タイムスタンプの形式は、 YYYY-MM-DD HH:MM:SS、←+>になりました。

dmesgの出力を特定のファシリティに制限する

dmesgをフィルタリングする -fを使用して特定のカテゴリに出力する オプション。システムは、カーネルリングバッファ内のメッセージを次の機能(カテゴリ)にグループ化します。

  • カーン 。カーネルメッセージ。
  • ユーザー 。ユーザーレベルのメッセージ。
  • メール 。メールシステムメッセージ。
  • デーモン 。システムデーモンに関するメッセージ。
  • auth 。承認メッセージ。
  • syslog 。内部syslogd メッセージ。
  • lpr 。ラインプリンタサブシステムメッセージ。
  • ニュース 。ネットワークニュースサブシステムメッセージ。

たとえば、次のコマンドは、出力を syslogに関連するメッセージに制限します。 施設:

sudo dmesg -f syslog

複数のファシリティからのメッセージを一覧表示するには、ファシリティのコンマ区切りリストを指定します。例:

sudo dmesg -f syslog,daemon

フィルターログレベル

dmesg コマンドは、各バッファメッセージをメッセージの重要性を特徴付けるログレベルに関連付けます。利用可能なレベルは次のとおりです。

  • emerg 。緊急メッセージ。
  • アラート 。早急な対応が必要なアラート。
  • クリティカル 。重大な状態。
  • err 。エラーメッセージ。
  • 警告 。警告メッセージ。
  • 通知 。通常ですが重要な状態です。
  • 情報 。情報メッセージ。
  • デバッグ 。デバッグレベルのメッセージ。

dmesgに指示する -l <​​/ code>を使用して、特定のレベルに一致するメッセージのみを出力します オプションの後にレベル名が続きます。例:

sudo dmesg -l info

上記の例では、ログから情報メッセージのみを抽出します。

カンマ区切りのリストで複数のレベルを組み合わせて、それらのレベルからメッセージを取得します。例:

sudo dmesg -l notice,warn

出力は、指定されたログレベルからのメッセージを結合します。

施設とレベルの組み合わせ

-x を使用して、各行の先頭に各バッファメッセージの機能とログレベルを明示的に表示します (デコード)オプション。

例:

sudo dmesg -x

上記の例では、各行の前に適切な機能とログレベルが追加されています。

dmesgログファイルの読み取り

システムが起動するたびに、カーネルリングバッファからのメッセージが / var / log / dmesgに保存されます。 ファイル。 dmesg コマンドはログファイルの内容を表示します。 dmesgの使用に問題がある場合 コマンドを実行し、テキストエディタでログファイルを開いて内容を表示します。

以下の例では、catコマンドを使用してログファイルを表示し、それを grepにパイプします。 ログにある特定の文字列を検索するには:

cat dmesg | grep amd

このコマンドは、すべての amdを出力します ログファイル内の文字列インスタンス。

CDドライブを確認する

バッファメッセージログを調べて、リモートマシンにCDドライブが装備されているかどうかを確認します。たとえば、次のコマンドは、起動時に初期化されたCDデバイスに関するすべてのメッセージを表示します。

sudo dmesg | grep -iE 'cdrom|dvd|cd/rw|cd-rom'

結果には、このマシンの仮想CD-ROMドライブを含む、使用可能なCD-ROMドライブに関する情報が表示されます。

sudo要件を削除

スーパーユーザー権限の要件を削除すると、すべてのユーザーが dmesgを実行できるようになります カーネルリングバッファメッセージを表示します。次のコマンドを実行して、sudo要件を削除します。

sudo sysctl -w kernel.dmesg_restrict=0

制限を0に設定した後 、システム上のすべてのユーザーが dmesgを実行できます


Ubuntu
  1. Linuxgrepコマンドの使用方法

  2. Linuxでhistoryコマンドを使用する方法

  3. LinuxでApt-Getコマンドを使用する方法

  1. Linuxでsudoコマンドを使用する方法

  2. Linuxでhostnameコマンドを使用する方法

  3. LinuxでPasswdコマンドを使用する方法

  1. Linuxでwallコマンドを使用する方法

  2. LinuxでModprobeコマンドを使用する方法

  3. 例を使用してLinuxでwコマンドを使用する方法