Lass es einfach funktionieren
- Sie möchten die Ausgabe von dmesg ständig und sofort drucken
- Dmesg druckt den Kernel-Ringpuffer (siehe
man dmesg
)
- Der Kernel-Ringpuffer ist eine spezielle Proc-Datei
/proc/kmsg
(siehe man proc
).
- Lesen Sie
/proc/kmsg
direkt, dh cat /proc/kmsg
.
Wenn Sie jetzt das freundliche Proc-Handbuch lesen, werden Sie streng gewarnt, dass nur ein Benutzer (der privilegiert sein muss) gleichzeitig lesen darf /proc/kmsg
. Unabhängig davon, welche Syslog-Implementierung Sie haben, sollten Sie dies tun, und vermutlich funktioniert dies auch dmesg
. Ich weiß nicht, ich bin hier nicht in meiner Liga, nur um das Handbuch zu umschreiben. Also, während dies die Art und Weise ist, wie "es einfach machen @ # $% ing funktioniert", betrachten Sie zuerst die nächsten paar Methoden.
Manpage freigegeben: watch + dmesg
Auf Arch Gnu / Linux mit systemd init * wird dmesg.log nicht sehr oft geschrieben, vielleicht gar nicht? Die beste Möglichkeit, den Kernel-Protokollpuffer kontinuierlich zu lesen, ist mit watch
. So etwas sollte Ihnen den Einstieg erleichtern (passen Sie an, wie viele Leitungen in Ihr Terminal passen):
watch 'dmesg | tail -50'
watch + dmesg + daemon + tail -f
Eine komplexere Lösung könnte watch verwenden, um die dmesg-Ausgabe in eine Datei zu schreiben, die Sie dann verwenden könnten tail -f
. Sie möchten wahrscheinlich, dass dies als Daemon ausgeführt wird. Ein richtiger Daemon würde auch Protokolle gzipen und rotieren. Der folgende Bash-Code ist nicht getestet, funktioniert nicht und soll nur eine Idee vermitteln. @ Brooks Moses Antwort hat eine funktionierende Version .
watch 'dmesg >> /var/log/dmesg.log | tail -1'
* tangens, weil dies eine osx-Frage ist, aber wenn systemd in der Nähe ist, kümmere dich nicht darum dmesg
, benutze journalctl -xf
(vielleicht w /, -n 100
um auch die vorherigen 100 Zeilen anzuzeigen )