VirtualBoxのログは 起動してからの時分秒で書かれているので、結局いつのことかわからない
$ cat VBox.log 00:00:00.401953 VirtualBox VM 7.1.14 r170994 linux.amd64 (Oct 16 2025 16:11:04) release log 00:00:00.401955 Log opened 2026-01-29T07:33:03.614781000Z 00:00:00.401956 Build Type: release 00:00:00.401957 OS Product: Linux 00:00:00.401958 OS Release: 6.1.0-28-amd64
見やすくするperlプログラム
#!/usr/bin/perl use strict; use warnings; use DateTime; use HTTP::Date; if(@ARGV>0 && $ARGV[0] eq "-h"){ print("VBox.log の日付を見やすくする\n"); exit; } my $base_dt = DateTime->from_epoch(0); while(my $line = <STDIN>){ if($line =~ /Log opened (\d\d\d\d-\d\d-\d\dT\d\d:\d\d:\d\d\.\d*Z)/){ my $epoch = str2time($1); $base_dt = DateTime->from_epoch(epoch=>$epoch, time_zone=>'local'); } if($line =~ /^(\d+):(\d\d):(\d\d).\d* (.*)$/){ my $dt = $base_dt->clone; $dt->add( hours => $1, minutes => $2, seconds => $3, ); $line = $dt->datetime(' '). " $4\n"; } print $line; }
使い方
$ ./hiduke.pl < VBox.log 1970-01-01 00:00:00 VirtualBox VM 7.1.14 r170994 linux.amd64 (Oct 16 2025 16:11:04) release log 2026-01-29 16:33:03 Log opened 2026-01-29T07:33:03.614781000Z 2026-01-29 16:33:03 Build Type: release 2026-01-29 16:33:03 OS Product: Linux 2026-01-29 16:33:03 OS Release: 6.1.0-28-amd64
やったぜ