’, Â, � etc... How to fix strange encoding characters in WP or other SQL database
目次:
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
にダンプするため、そのログファイルを使用することもできます。
dmesg
出力のフォーマット
dmesg
コマンドには、出力のフォーマットとフィルタリングに役立つ多くのオプションがあります。
dmesg
最もよく使用されるオプションの1つは
-H
(--
--human
)で、これは人間が読み取れる出力を有効にします。 このオプションは、コマンド出力をページャーにパイプします。
dmesg -H
人間が読めるタイムスタンプを出力するには、
-T
(--
--ctime
)オプションを使用します:
dmesg -T
IPv6: ADDRCONF(NETDEV_CHANGE): wlp1s0: link becomes ready
タイムスタンプ形式は
--time-format
を使用して設定することもでき
--time-format
dmesg --time-format=delta
2つ以上のオプションを組み合わせることもできます。
dmesg -H -T
dmesg
コマンドの出力をリアルタイムで監視するには、
-w
(--
--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つ以上のコンマ区切りレベルを受け入れます。
次のコマンドは、エラーおよび重要なメッセージのみを表示します。
リングバッファのクリア
-C
(--clear)オプションを使用すると、リングバッファーをクリアできます。
sudo dmesg -C
rootまたはsudo特権を持つユーザーのみがバッファーをクリアできます。
クリアする前にバッファーの内容を出力するには、
-c
(--
--read-clear
)オプションを使用します。
sudo dmesg -c
結論
dmesg
コマンドを使用すると、カーネルリングバッファーを表示および制御できます。 カーネルまたはハードウェアの問題をトラブルシューティングするときに非常に役立ちます。
利用可能なすべての
dmesg
オプションについては、ターミナルで
man dmesg
と入力してください。