アンドロイド

LinuxのDmesgコマンド

’, Â, � etc... How to fix strange encoding characters in WP or other SQL database

’, Â, � etc... How to fix strange encoding characters in WP or other SQL database

目次:

Anonim

Linuxカーネルは、CPU、I / Oデバイス、物理メモリ、ファイルシステムなどのシステムリソースへのアクセスを制御するオペレーティングシステムの中核です。 カーネルは、ブートプロセス中およびシステムの実行中に、カーネルリングバッファにさまざまなメッセージを書き込みます。 これらのメッセージには、システムの動作に関するさまざまな情報が含まれています。

カーネルリングバッファーは、カーネルのログメッセージを保持する物理メモリの一部です。 サイズは固定です。つまり、バッファがいっぱいになると、古いログレコードが上書きされます。

dmesg コマンドラインユーティリティは、Linuxおよびその他のUnixライクなオペレーティングシステムでカーネルリングバッファーを印刷および制御するために使用されます。 カーネルブートメッセージを調べ、ハードウェア関連の問題をデバッグするのに役立ちます。

このチュートリアルでは、 dmesg コマンドの基本について説明します。

dmesg コマンドの使用

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

dmesg

オプションなしで呼び出すと、 dmesg はカーネルリングバッファーからのすべてのメッセージを標準出力に書き込みます。

dmesg

デフォルトでは、すべてのユーザーが dmesg コマンドを実行できます。 ただし、一部のシステムでは、root以外のユーザーに対して dmesg へのアクセスが制限される場合があります。 この場合、 dmesg を呼び出すと、次のようなエラーメッセージが表示されます。

dmesg: read kernel buffer failed: Operation not permitted

カーネルパラメーター kernel.dmesg_restrict は、権限のないユーザーが dmesg を使用してカーネルのログバッファーからメッセージを表示できるかどうかを指定します。 制限を削除するには、ゼロに設定します。

sudo sysctl -w kernel.dmesg_restrict=0

通常、出力には多くの情報行が含まれるため、出力の最後の部分のみが表示されます。 1ページずつ表示するには、 less または more などのページャーユーティリティに出力をパイプします。

dmesg --color=always | less

--color=always は、カラー出力を保持するために使用されます。

dmesg | grep -i usb

dmesg は、カーネルによって生成されたメッセージを /proc/kmsg 仮想ファイルから読み取ります。 このファイルは、カーネルリングバッファーへのインターフェイスを提供し、1つのプロセスでのみ開くことができます。 システムで syslog プロセスが実行されており、 cat または less でファイルを読み取ろうとすると、コマンドがハングします。

syslog デーモンはカーネルメッセージを /var/log/dmesg にダンプするため、そのログファイルを使用することもできます。

cat /var/log/dmesg

dmesg 出力のフォーマット

dmesg コマンドには、出力のフォーマットとフィルタリングに役立つ多くのオプションがあります。

dmesg 最もよく使用されるオプションの1つは -H (-- --human )で、これは人間が読み取れる出力を有効にします。 このオプションは、コマンド出力をページャーにパイプします。

dmesg -H

人間が読めるタイムスタンプを出力するには、 -T (-- --ctime )オプションを使用します:

dmesg -T

IPv6: ADDRCONF(NETDEV_CHANGE): wlp1s0: link becomes ready

タイムスタンプ形式は --time-format を使用して設定することもでき --time-format オプション。ctime、reltime、delta、notime、isoのいずれかです。 たとえば、デルタ形式を使用するには、次のように入力します。

dmesg --time-format=delta

2つ以上のオプションを組み合わせることもできます。

dmesg -H -T

dmesg コマンドの出力をリアルタイムで監視するには、 -w (-- --follow )オプションを使用します。

dmesg --follow

dmesg 出力のフィルタリング

dmesg 出力を特定の機能とレベルに制限できます。

機能は、メッセージを作成したプロセスを表します。 dmesg は、次のログ機能をサポートしています。

  • kern カーネルメッセージ user -ユーザーレベルのメッセージ mail -メールシステム daemon -システムデーモン kern セキュリティ/承認メッセージ kern 内部syslogdメッセージ lpr ラインプリンターサブシステム news -ネットワークニュースサブシステム

-f (-- --facility )オプションを使用すると、出力を特定の施設に制限できます。 このオプションは、1つ以上のコンマ区切り機能を受け入れます。

たとえば、使用するカーネルメッセージとシステムデーモンメッセージのみを表示するには、次のようにします。

dmesg -f kern, daemon

各ログメッセージは、メッセージの重要性を示すログレベルに関連付けられています。 dmesg は次のログレベルをサポートしています。

  • emerg システムは使用できません alert -アクションはすぐに実行する必要があります emerg クリティカル状態 emerg エラー状態 emerg 警告状態 notice -正常だが重要な状態 info -情報 debug -デバッグレベルのメッセージ

-l (-- --level )オプションは、出力を定義されたレベルに制限します。 このオプションは、1つ以上のコンマ区切りレベルを受け入れます。

次のコマンドは、エラーおよび重要なメッセージのみを表示します。

dmesg -l err, crit

リングバッファのクリア

-C (--clear)オプションを使用すると、リングバッファーをクリアできます。

sudo dmesg -C

rootまたはsudo特権を持つユーザーのみがバッファーをクリアできます。

クリアする前にバッファーの内容を出力するには、 -c (-- --read-clear )オプションを使用します。

sudo dmesg -c

dmesg > dmesg_messages

結論

dmesg コマンドを使用すると、カーネルリングバッファーを表示および制御できます。 カーネルまたはハードウェアの問題をトラブルシューティングするときに非常に役立ちます。

利用可能なすべての dmesg オプションについては、ターミナルで man dmesg と入力してください。

dmesgカーネルターミナル