揮発性のメモ2

http://d.hatena.ne.jp/iww/

dmesgのuptime部分を日付にする

汎用的な何かを目指していたが途中で飽きたので中途半端なものになった。

#!/bin/bash

uptimedate(){
    UPTIME=$1
    STARTTIME=$2

    date +"%Y-%m-%d %H:%M:%S" --date=@$(($UPTIME+$STARTTIME))
}


STARTTIME=`grep btime /proc/stat|cut -b7-`

dmesg | while read line; do
    line=${line#*[}
    uptime_b=${line%%]*}
    line=${line#*] }

    uptime_s=${uptime_b%%.*}
    uptime_u=${uptime_b#*.}
    uptime_d=`uptimedate $uptime_s $STARTTIME`

    echo $uptime_d.$uptime_u $line
done
# dmesg
[    0.000000] Linux version 4.9.0-4-amd64 ... 後略

# ./mydmesg
2018-01-19 13:29:01.000000 Linux version 4.9.0-4-amd64 ... 後略

uptime部分をばらして日付に直して表示する
マイクロ秒も一応表示しているが、あてにはならない