Heiko Schlittermann <[email protected]> (Di 11 Jan 2011 16:45:17 CET): > Björn Abheiden <[email protected]> (Di 11 Jan 2011 16:22:35 CET): > > Hallo Liste, > > > > wie kann ich mir die Log-Einträge der vergangenen 60 Minuten anzeigen > > lassen. Die Zeilen der Protokolldatei fangen z.B. mit "2011-01-11 > > 16:17:48,542 INFO ..." an. > > Bisher habe ich mir mit 'date' die letzte Stunde ausgeben lassen und die > > Minuten verworfen. Jedoch ist mir das zu ungenau. > > In Shell?
Alternativ (das würde sogar bei vielen Logfiles nur die passenden Zeilen
raussuchen):
#! /usr/bin/perl
use strict;
use warnings;
use Date::Parse;
my $time0 = time - 3600;
while (<>) {
next if not /^(\S+\s+\d?\d\s+\d?\d:\d\d:\d\d)\s/;
next if str2time($_) < $time0;
print;
}
Wenn es nur ein (Singular) Logfile wäre, dann vielleicht analog zur Logik im
Shellscript:
#! /usr/bin/perl
use strict;
use warnings;
use Date::Parse;
die "Please use STDIN or only one file name!" if @ARGV > 1;
my $time0 = time - 3600;
while (<>) {
last if /^(…)/ and str2time($1) >= 0;
}
print while <>;
--
Heiko :: dresden : linux : SCHLITTERMANN.de
GPG Key 48D0359B : 3061 CFBF 2D88 F034 E8D2 7E92 EE4E AC98 48D0 359B
signature.asc
Description: Digital signature
_______________________________________________ Lug-dd maillist - [email protected] https://ssl.schlittermann.de/mailman/listinfo/lug-dd
