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/kmsgdirekt, 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 100um auch die vorherigen 100 Zeilen anzuzeigen )