02 August 2019

dmesg mit sinnvollen Timestamps

Ich hab' mich ja immer schon geärgert, dass dmesg immer nur Sekunden seit Kernel Start anzeigt (wenn das so konfiguriert ist - das ist aber bei allen modernen Distributionen von Haus aus so).

Normalerweise sieht man das den letzten paar Meldungen aber nicht an, ob das jetzt vor 5 Minuten war oder vor 2 Monaten. Wenn man den Screenshot da rechts anguckt, sieht man, dass direkt nach dem Start apparmor ein paar mal rumgeheult hat, eine Stunde nach dem Start nf_conntrack was zu sagen hat und dann sehr viel später nochmal was. Und wann war das jetzt?

Ich hab' nicht den leisesten Schimmer!

Vor ein paar Tagen hab ich aus Versehen mal wieder die Manpage zu dmesg geöffnet und - siehe da - es gibt den Parameter -T (--ctime), und das wohl schon seit geraumer Zeit. Ich hatte ja keine Ahnung! And that's not all! Wohl um die Version 2.31.1 herum wurde nicht nur die hübsche Farbunterstützung dazugebaut, sondern es gibt seitdem den Parameter -w (--follow), den ich schon immer schmerzlich vermisst hatte und stattdessen dieses unhandliche Konstrukt verwendet habe:

watch -n1 "dmesg | tail -30"

Geht auch, ist aber nicht bunt und vor allem nicht so praktisch wie

dmesg -Tw

Und mit dieser Ausgabe kann man dann auch was anfangen. Jetzt weiß ich, dass die Meldung von conntrack schon ein paar Tage her ist und kann sie in Relation zu Meldungen aus dem Syslog oder Maillog setzen.

Kleiner Wermutstropfen: wenn der Kernel im Sleep Mode ist, zählt die Uhr eventuell nicht weiter (abhängig vom Sleep State) und die Berechnung der Zeit ist dann eben Bullshit. Damit kann ich umgehen.

Keine Kommentare: