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