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

Attachment: signature.asc
Description: Digital signature

_______________________________________________
Lug-dd maillist  -  [email protected]
https://ssl.schlittermann.de/mailman/listinfo/lug-dd

Antwort per Email an