How to deal with dmesg timestamps

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
[...]

How to convert timestamps to human readable form?

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
[...]

What if above-mentioned parameters are not supported?

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

What if timestamps are missing?

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
This change will not be permanent as it will last until reboot. To make it permanent add 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
[...]
0 (0)
Article Rating (No Votes)
Rate this article
Attachments
There are no attachments for this article.
Comments (1)
Comment By DJKR - Tue, Dec 13th, 2022 4:16 PM
What timezone are the timestamps in the dmesg file If I look at the system time I see date Tue Dec 13 15:10:06 UTC 2022 however looking at the logs I see a different time date: invalid date `now - 88782715.55 seconds + lo: seconds' date: invalid date `now - 88782715.55 seconds + lo: seconds' date: invalid date `now - 88782715.55 seconds + lo: seconds' [] Disabled Privacy Extensions [] Disabled Privacy Extensions [Wed Dec 14 06:12:25 2022] Enabled timestamps [Wed Dec 14 06:13:14 2022] lo: Disabled Privacy Extensions [Wed Dec 14 06:13:14 2022] lo: Disabled Privacy Extensions
Full Name
Email Address
Security Code Security Code
Related Articles RSS Feed
RHEL: iSCSI target/initiator configuration on RHEL6
Viewed 8609 times since Sat, Jun 2, 2018
RHEL: Extending a multipath LUN
Viewed 4727 times since Sun, May 27, 2018
CentOS / RHEL : Configure yum automatic updates with yum-cron service
Viewed 3427 times since Fri, Oct 26, 2018
Linux - How to monitor CPU usage
Viewed 6294 times since Fri, Jun 8, 2018
Check Detailed CPU Information In Linux With CoreFreq [Advanced]
Viewed 2208 times since Thu, Apr 18, 2019
Linux – How to check the exit status of several piped commands
Viewed 2844 times since Wed, Jul 25, 2018
RHCS6: ’fencing’ basics
Viewed 2138 times since Sun, Jun 3, 2018
Tcpdump Examples Linux
Viewed 5732 times since Fri, Nov 16, 2018
Telnet – Send GET/HEAD HTTP Request
Viewed 3101 times since Mon, Feb 18, 2019
Red Hat Enterprise Linux - Allow Root Login From a Specific IP Address Only
Viewed 2641 times since Wed, Oct 3, 2018