Dmesg mit korrektem lesbaren Timestamp
Zur Navigation springen
Zur Suche springen
Die Zeitstempel vom dmesg sind die Sekunden.Millisekunden seit dem letzen Boot. Für Menschen eigentlich unlesbar bis nutzlos.
Kommt hinzu, dass diese Zeitstempel nach einem suspend/resume nicht mehr stimmen da sie währendessen nicht gezählt werden.
Dieses Skript ( etwas angepasst von https://serverfault.com/users/63361/mivk , danke ) konvertiert die Timestamp zu menschenlesbaren und korrekten Zeiteinträgen.
#!/bin/bash
#
# write current time to kernel ring buffer
echo "timecheck: $(date +%s) = $(date +%F_%T)" > /dev/kmsg
# use our "timecheck" entry to get the difference
offset=$(dmesg | grep timecheck | tail -1 | perl -nle '($t1,$t2)=/^.(\d+)\S+ timecheck: (\d+)/; print $t2-$t1')
# pipe dmesg output through a Perl snippet to convert it's timestamp to correct readable times
#dmesg | perl -pe 'BEGIN{$offset=shift} s/^\[\s*(\d+)\S+/localtime($1+$offset)/e' $offset
# or use this instead to keep dmesg colors
dmesg --color=always | perl -pe 'BEGIN{$offset=shift} s/^(\x1b\[.*?m)?\[\s*(\d+)\S+/$1.localtime($2+$offset)/e' $offset