Linux: dmesg timestamp human readable

Posted: 30th September 2016 by Thorben Hemmler in Serveradministration
dmesg | perl -ne "BEGIN{\$a= time()- qx!cat /proc/uptime!}; s/\[\s*(\d+)\.\d+\]/localtime(\$1 + \$a)/e; print \$_;"

Fri Sep 23 04:27:49 2016 sd 1:0:1:13: [sdbn] Result: hostbyte=DID_OK driverbyte=DRIVER_SENSE
Fri Sep 23 04:27:49 2016 sd 1:0:1:13: [sdbn] Sense Key : Illegal Request [current]
Fri Sep 23 04:27:49 2016 sd 1:0:1:13: [sdbn] Add. Sense: Illegal function (use 20 00, 24 00, or 26 00)
Fri Sep 23 04:27:49 2016 sd 1:0:1:13: [sdbn] CDB: Read(10): 28 00 00 00 00 00 00 00 08 00
Fri Sep 23 04:27:49 2016 end_request: critical target error, dev sdbn, sector 0
Fri Sep 23 04:27:49 2016 sd 0:0:1:19: [sdaj] Result: hostbyte=DID_OK driverbyte=DRIVER_SENSE
Fri Sep 23 04:27:49 2016 sd 0:0:1:19: [sdaj] Sense Key : Illegal Request [current]
Fri Sep 23 04:27:49 2016 sd 0:0:1:19: [sdaj] Add. Sense: Illegal function (use 20 00, 24 00, or 26 00)
Fri Sep 23 04:27:49 2016 sd 0:0:1:19: [sdaj] CDB: Read(10): 28 00 00 00 00 00 00 00 08 00
Fri Sep 23 04:27:49 2016 end_request: critical target error, dev sdaj, sector 0

  1. J.Heidel sagt:

    Hallo Herr Hemmler,

    bin per Zufall auf Ihren dmesg Post gestoßen. Nur als Tipp, es geht viel leichter mit dem Flag „-T“ …

    man dmesg

    -T, –ctime Print human readable timestamps.

    VG
    Jörg Heidel

    • Thorben Hemmler sagt:

      Hallo Herr Heidel,

      danke für den Tipp. Bei einigen Distributionen scheint es diese Option nicht zu geben. Siehe hier:

      cat /etc/SuSE-release
      SUSE Linux Enterprise Server 11 (x86_64)
      VERSION = 11
      PATCHLEVEL = 4
      dmesg -T
      dmesg: invalid option -- 'T'
      Usage: dmesg [-c] [-n level] [-r] [-s bufsize]

      Viele Grüße
      Thorben Hemmler