揮発性のメモ2

知識をメモ書きしておく

dmesgのuptime部分を日付にする 2

dmesg の時間表記を日時に変換するやつ

#!/usr/bin/perl

my $btime = `grep btime /proc/stat|cut -b7-`;

open(my $fh, "dmesg |") or die("open");
while(<$fh>){
    if( $_ =~ m/^\[\s*(\d+)\.\d*\] (.*)$/ ){
        my $time = $1;
        my $text = $2;

        my ($S,$M,$H,$d,$m,$Y,$x) = localtime($time+$btime);
        my $date = sprintf( "%04d-%02d-%02d %02d:%02d:%02d", $Y+1900,$m+1,$d,$H,$M,$S );
        print( "[$date] $text\n" );
    }else{
        print
    }
}


なんか昔書いてたはずだよなと思って検索したら昔書いたのがでてきた
dmesgのuptime部分を日付にする - 揮発性のメモ2


これで計算された日時は 実際の時刻となんか微妙に数秒ずれているけど、原因はわからない。
とりあえず目安には使えるのでほっとく