@#$%ingを機能させるだけです
- dmesgの出力を、絶えず、すぐに印刷したい
- Dmesgはカーネルリングバッファーを出力しています(を参照
man dmesg
)
- カーネルリングバッファーは特別なprocファイルです
/proc/kmsg
(を参照man proc
)
/proc/kmsg
直接読む、すなわちcat /proc/kmsg
。
さて、親しみやすいprocマニュアルを読むと、一度に1人のユーザー(特権が必要)のみが読めるように厳しく警告します/proc/kmsg
。syslogの実装が何であれ、これを行う必要があり、おそらくで動作しdmesg
ます。私は知らない、私はここで私のリーグから外れている、ただマニュアルを言い換えている。したがって、これは「@#$%ingを機能させる」方法ですが、最初に次のいくつかの方法を検討してください。
承認されたマニュアルページ:watch + dmesg
systemd init *を使用したArch gnu / linuxでは、dmesg.logは頻繁に書き込まれません。おそらくまったく書き込まれませんか?カーネルログバッファーを継続的に読み取る最良の方法は、を使用することwatch
です。このような何かがあなたを始めるはずです(あなたの端末に合う行数を調整してください):
watch 'dmesg | tail -50'
watch + dmesg + daemon + tail -f
より複雑なソリューションでは、watchを使用してdmesg出力をファイルに書き込むことができますtail -f
。おそらくこれをデーモンとして実行したいでしょう。適切なデーモンは、ログをgzipおよびローテーションします。次のbashコードはテストされておらず、機能しておらず、アイデアを伝えることのみを目的としています。@Brooks Mosesの答えには動作バージョンがあります。
watch 'dmesg >> /var/log/dmesg.log | tail -1'
*接線、これはosxの質問ですが、systemdが存在する場合は、気にしないでください(前の100行も表示するためにw / をdmesg
使用することもできます)journalctl -xf
-n 100