By default dmesg
command print kernel ring buffer using timestamp for each logged message. It is easy to change this behavior and display date/time in human readable form using just one additional parameter but sometimes it is not supported so I will shortly touch upon this topic.
$ dmesg [...] [ 1.028871] Linux agpgart interface v0.103 [ 1.028940] agpgart-intel 0000:00:00.0: Intel Sandybridge Chipset [ 1.028999] agpgart-intel 0000:00:00.0: detected gtt size: 2097152K total, 262144K mappable [ 1.029857] agpgart-intel 0000:00:00.0: detected 65536K stolen memory [...]
The easiest way is to use -T
or --ctime
parameter.
$ dmesg -T [...] [Sat Oct 19 12:43:26 2013] Linux agpgart interface v0.103 [Sat Oct 19 12:43:26 2013] agpgart-intel 0000:00:00.0: Intel Sandybridge Chipset [Sat Oct 19 12:43:26 2013] agpgart-intel 0000:00:00.0: detected gtt size: 2097152K total, 262144K mappable [Sat Oct 19 12:43:26 2013] agpgart-intel 0000:00:00.0: detected 65536K stolen memory [...]
Sometimes you will encounter linux distribution in which such conversion is not supported but it can be easily implemented using the following shell script.
#!/bin/bash # Translate dmesg timestamps to human readable format # desired date format date_format="%a %b %d %T %Y" # uptime in seconds uptime=$(cut -d " " -f 1 /proc/uptime) # run only if timestamps are enabled if [ "Y" = "$(cat /sys/module/printk/parameters/time)" ]; then dmesg | sed "s/^\[[ ]*\?\([0-9.]*\)\] \(.*\)/\\1 \\2/" | while read timestamp message; do printf "[%s] %s\n" "$(date --date "now - $uptime seconds + $timestamp seconds" +"${date_format}")" "$message" done else echo "Timestamps are disabled (/sys/module/printk/parameters/time)" fi
Rarely you will find that timestamps are missing from the dmesg
output.
$ dmesg [...] Bluetooth: RFCOMM TTY layer initialized Bluetooth: RFCOMM socket layer initialized Bluetooth: RFCOMM ver 1.11 [...]
Read /sys/module/printk/parameters/time
file to confirm that timestamps are disabled.
$ cat /sys/module/printk/parameters/time N
To enable logging timestamps write Y
to the above-mentioned file.
$ echo Y | sudo tee /sys/module/printk/parameters/time
printk.time=1
parameter to grub options.Log test message and verify dmesg
output to check out changes.
$ echo "Enabled timestamps" | sudo tee /dev/kmsg
$ dmesg [...] Bluetooth: RFCOMM TTY layer initialized Bluetooth: RFCOMM socket layer initialized Bluetooth: RFCOMM ver 1.11 [...] [271309.434405] Enabled timestamps [...]
Article Number: 404
Posted: Wed, Oct 3, 2018 4:14 PM
Last Updated: Wed, Oct 3, 2018 4:14 PM
Online URL: http://kb.ictbanking.net/article.php?id=404