Thread perl-script zur Mail-log Auswertung (12 answers)
Opened by skynetworks at 2007-08-01 21:53

skynetworks
 2007-08-01 21:53
#97166 #97166
User since
2007-05-24
10 Artikel
BenutzerIn
[default_avatar]
Hallo zusammen,

ich habe da eine kleine Frage zu einem bestehenden Perl-Script.
Das Programm listet mir alle Rejects aus dem Mail-Logfile auf, funktioniert soweit bestens.

Ich hätte gerne, daß wenn der Suchstring gefunden wird, aus dieser Zeile die from-Mailadresse, welche durch die Zeichen from=< und > und die to-Mailadresse, welche durch to=< und > begrenzt sind, in das Ziel-File ausgegeben wird. Die Uhrzeit soll auch mitgeschrieben werden, das funktioniert mit dem bisherigen code schon (sind immer die Zeichen 0 bis 15).

Und noch eine Frage: Im Suchstring möchte ich auch gerne Sonder- und Leerzeichen verwenden z.B. "reject ", also ein Leerzeichen nach dem reject. Wenn ich also

if ($line =~ m/\breject \b/)

angebe, erhalte ich im Zielfile keine Ausgabe.

Wie wäre das Programm denn zu verändern?

Hier der bisherige Code:
Code: (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
36
37
38
39
40
41
42
43
44
45
#!/usr/bin/perl
use strict;
use warnings 'all';

# dateinamen
my $inputfile = '/var/log/mail.log.1';
my $outputfile = '/var/www/alle_rejects.txt';

# oeffne inputfile
open(my$fhin, '<', $inputfile) or die "$inputfile: $!";

# array f�r die ausgabe
my @output;

# lies zeile f�r zeile
while (my$line = <$fhin>)
{
if ($line =~ m/\breject\b/)
{
# wenn der Suchstring "reject" vorkommt,
# und "from" gefunden wird,
# wird das ausgabearray erweitert

if ( $line =~ m/from\s*(.*?):/ )
{ push(@output, substr( $line, 0, 15 ) .' : '. $1) }

}
}

# inputfile schliessen
close $fhin;

# ausgabearray bearbeiten
unshift(@output, $#output+2);

# oeffne outputfile
open(my$fhout, '>', $outputfile) or die "$outputfile: $!";

# daten rausschreiben
map { print $fhout "$_$/" } @output;

# outputfile schliessen
close $fhout;



Vielen Dank im Voraus für einen Tip,

Viele Grüße
Thomas

View full thread perl-script zur Mail-log Auswertung