Timestamp im Logfile lesbar machen

Begonnen von admin, November 20, 2009, 17:04:08

« vorheriges - nächstes »

0 Mitglieder und 1 Gast betrachten dieses Thema.

admin

Jede Zeile im Logfile enthält einen Timestamp im Unix Format. Da dieser schlecht für Menschen lesbar ist (aber sehr gut für Computer) hier ein kleines Perl Programm zur Umwandlung der Datei in eine lesebare Form. Das Programm wird auf der Kommandozeile gestartet und hat zwei Parameter, die Eingangs- und Ausgangsdatei.


#wandelt in shoplog Dateien den Timestamp von Unix Time in lesbare Zeit
#
if ($#ARGV != 1) {
print "usage: perl dateconv.pl inputfile otputfile\n";
}

open(IN,"< $ARGV[0]");
open(OUT,"> $ARGV[1]");

while( <IN> ) {
my $ln = $_;
$ln =~ m/,(\d\d\d\d\d\d\d\d\d\d),/;
$unixtime = $1;
($sec,$min,$hour,$mday,$mon,$year) = localtime($unixtime);
$mon = $mon + 1; $year += 1900;
$datestr = sprintf("%02d.%02d.%4d %02d:%02d.%02d",$mday,$mon,$year,$hour,$min,$sec);
$ln =~ s/,\d\d\d\d\d\d\d\d\d\d,/,- $datestr -,/g;
print OUT $ln;