dmesg 时间转换脚本

时间:2024-09-14 09:07:20

https://linuxaria.com/article/how-to-make-dmesg-timestamp-human-readable

perl脚本

#!/usr/bin/perl

use strict;
use warnings; my @dmesg_new = ();
my $dmesg = "/bin/dmesg";
my @dmesg_old = `$dmesg`;
my $now = time();
my $uptime = `cat /proc/uptime | cut -d"." -f1`;
my $t_now = $now - $uptime; sub format_time {
my @time = localtime $_[];
$time[]+=; # Adjust Month
$time[]+=; # Adjust Year
return sprintf '%4i-%02i-%02i %02i:%02i:%02i', @time[reverse ..];
} foreach my $line ( @dmesg_old )
{
chomp( $line );
if( $line =~ m/\[\s*(\d+)\.(\d+)\](.*)/i )
{
# now - uptime + sekunden
my $t_time = format_time( $t_now + $ );
push( @dmesg_new , "[$t_time] $3" );
}
} print join( "\n", @dmesg_new );
print "\n";