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