分析邮件日志程序
时间:2006-04-14 来源:y.kevin
本次程序比较简单程序分为两个analysemaillog.pl 和 s.pl,整理完生成/tmp/log文件格式为:
时间 邮件大小 发件人 收件人
################################################################
#analysemaillog.pl #
################################################################
use strict;
open (FA,">/tmp/tmpfile_from.txt");
open (FB,">/tmp/tmpfile_to.txt"); while(<>)
{
if(/(\w{3} {1,2}\d{1,2} \d{2}:\d{2}:\d{2}).*: (\w+): from=<(.*)>, size=(\d+)/)
{
my $a = $2;
my $b = $1;
my $c = $4;
my $d = $3;
if($d eq ""){$d = "<>";}
select(FA);
printf "%s %s %d from %s",$a,$b,$c,$d;
print "\n";
}
elsif(/: (\w+): to=<(\w+@\w+\.\w+)>,/)
{
my $x = $1;
my $y = $2;
select(FB);
printf "%s %s",$x,$y;
print "\n";
}
}
close FA;
close FB;
system"./s.pl"; ############################################################### #s.pl # ############################################################### #!/usr/bin/perl -w
use strict;
open F1,"/tmp/tmpfile_to.txt";
open F2,"/tmp/tmpfile_from.txt";
open F3,">/tmp/log"; my @myarray = ();
while(<F1>)
{
push @myarray, {split / /};
}
while(<F2>)
{
chomp;
/(\w+) /;
for my $h ( 0 .. $#myarray)
{
my @k = keys %{$myarray[$h]};
my @v = values %{$myarray[$h]};
if($1 eq $k[0])
{
select F3;
print "$' to $v[0]";
}
}
} system"rm -fr /tmp/tmpfile*";
open (FA,">/tmp/tmpfile_from.txt");
open (FB,">/tmp/tmpfile_to.txt"); while(<>)
{
if(/(\w{3} {1,2}\d{1,2} \d{2}:\d{2}:\d{2}).*: (\w+): from=<(.*)>, size=(\d+)/)
{
my $a = $2;
my $b = $1;
my $c = $4;
my $d = $3;
if($d eq ""){$d = "<>";}
select(FA);
printf "%s %s %d from %s",$a,$b,$c,$d;
print "\n";
}
elsif(/: (\w+): to=<(\w+@\w+\.\w+)>,/)
{
my $x = $1;
my $y = $2;
select(FB);
printf "%s %s",$x,$y;
print "\n";
}
}
close FA;
close FB;
system"./s.pl"; ############################################################### #s.pl # ############################################################### #!/usr/bin/perl -w
use strict;
open F1,"/tmp/tmpfile_to.txt";
open F2,"/tmp/tmpfile_from.txt";
open F3,">/tmp/log"; my @myarray = ();
while(<F1>)
{
push @myarray, {split / /};
}
while(<F2>)
{
chomp;
/(\w+) /;
for my $h ( 0 .. $#myarray)
{
my @k = keys %{$myarray[$h]};
my @v = values %{$myarray[$h]};
if($1 eq $k[0])
{
select F3;
print "$' to $v[0]";
}
}
} system"rm -fr /tmp/tmpfile*";
相关阅读 更多 +
排行榜 更多 +