Thread Datei durchsuchen; Ergebnisse formatieren (12 answers)
Opened by zottel500 at 2007-08-21 14:15

renee
 2007-08-21 17:09
#98484 #98484
User since
2003-08-04
14371 Artikel
ModeratorIn
[Homepage] [default_avatar]
ungetestet...

Code (perl): (dl )
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
#!/usr/bin/perl

use strict; # sollte Pflicht sein, siehe auch im Wiki (FAQ)
use warnings;

my @filter      = ("failure"); # hier noch weiter Filterworte eintragen
my $file        = '/path/to/log.file';
my $outfile     = '/path/to/result.file';
my $application = 'ClusterService';
my $severity    = 'critical';
my @lines;

my $re = join '|', @filter;

{
    # aendere den "input_separator" (siehe perldoc perlvar)
    local $/ = "\n=====";
    open my $fh, '<', $file or die $!; 
    # gehe durch die ganze Datei
    while( my $line = <$fh> ){
        chomp $line;
        # wenn eines der gesuchten Worte in der Zeile steht
        if( $line =~ /MESSAGE: (?:$re)/ ){
            my ($timestamp) = $line =~ /=+\r?\n\w+\s\w+\s\w{3}\s\w{3}\s(\d+:\d+:\d+)/;
            my ($hostname)  = $line =~ /on Node: (\w+)/;
            my ($message)   = $line =~ /MESSAGE: (.*)/;
            my $entry       = sprintf "%s::%s::%s::%s::%s", $timestamp, $application, $severity, $hostname, $message;
            push @lines, $entry;
        }
    }
}

open my $out, '>', $outfile or die $!;
print $out $_,"\n" for @lines;
close $out;
OTRS-Erweiterungen (http://feature-addons.de/)
Frankfurt Perlmongers (http://frankfurt.pm/)
--

Unterlagen OTRS-Workshop 2012: http://otrs.perl-services.de/workshop.html
Perl-Entwicklung: http://perl-services.de/

View full thread Datei durchsuchen; Ergebnisse formatieren