[TIP] Como pasar/convertir del timestamping del syslog (dmesg) a hora human readable en Linux

in #bash6 years ago

 

Lo tiro acá para toda la posteridad. Un pequeñísimo script para convertir el timestamping de syslog (la cantidad de segundos transcurridos desde que booteó el sistema) a hora local, cosa que a priori parece trivial pero que a la tercera vez que tenés que usar ya te cansa la cabeza.

 

Un poco de bash scripting. Convertir de Unix timestamping en el syslog de Linux a Hora en formato human readable.
Un poco de bash scripting. Convertir de Unix timestamping en el syslog de Linux a Hora en formato human readable.

 

Este script no es mío, lo robé de algún lado hace años y desde entonces me acompaña a todas partes:

#!/bin/bash

if [ "$#" != "1" ] ; then
echo "Usage: basename $0 time-offset-integer"
exit 1
elif [ "echo $1 | sed 's/[0-9]//g'" != "" ] ; then
echo "Usage: basename $0 time-offset-integer"
exit 1
fi

N=date +'%s'
U=FS="." /usr/bin/awk '{print $1;}' < /proc/uptime | sed 's/[^0-9].*//'
TS=expr $N - $U + $1
T=date --date="@$TS"

echo "$1 seconds after boot was about $T."
 

Como se usa.


A la típica salida del comando dmesg, o /var/log/syslog por ejemplo:

[511684.749771] Process accounting resumed
[511684.842941] systemd[1]: apt-daily-upgrade.timer: Adding 33min 25.167508s random time.
You have new mail in /var/mail/root
 

 

Ejecutás el script anterior, que en este caso llamé syslogtohuman.sh:

~# ./syslogtohuman.sh 511684
511684 seconds after boot was about Thu Aug 16 11:20:13 -03 2018.
 

Y así sabés que esa entrada en el syslog en particular aproximadamente en esa fecha y a esa hora: Thu Aug 16 11:20:13 -03 2018

 

De nada.



Posted from my blog with SteemPress : http://www.malditonerd.com/tip-como-parar-del-timestamping-del-syslog-dmesg-a-hora-human-readable-en-linux/

Coin Marketplace

STEEM 0.19
TRX 0.15
JST 0.029
BTC 63635.72
ETH 2597.20
USDT 1.00
SBD 2.91