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: Display swap/RAM size
Viewed 3016 times since Sat, Jun 2, 2018
Top 20 OpenSSH Server Best Security Practices ssh linux aix
Viewed 5611 times since Fri, May 15, 2020
Super Grub2 Disk
Viewed 3186 times since Wed, May 22, 2019
RHCS6: Install a two-node basic cluster
Viewed 3191 times since Sun, Jun 3, 2018
Epoch & Unix Timestamp Conversion Tools
Viewed 46629 times since Fri, Jun 22, 2018
20 Practical Examples of RPM Commands in Linux rpm
Viewed 7700 times since Mon, Feb 18, 2019
RHEL: Rebuilding the initial ramdisk image
Viewed 6737 times since Sat, Jun 2, 2018
ubuntu How to reset lost root password on Ubuntu 16.04 Xenial Xerus Linux
Viewed 8017 times since Tue, Dec 8, 2020
Set Up SSH Tunneling on a Linux / Unix / BSD Server To Bypass NAT
Viewed 11042 times since Fri, May 15, 2020
Moving SSL Certificate from IIS to Apache
Viewed 1717 times since Mon, Feb 18, 2019