Article View: pl.comp.lang.perl
Article #52097Re: problem logiczny ze skryptem
From: Kacper Perschke
Date: Mon, 06 Dec 2010 22:11
Date: Mon, 06 Dec 2010 22:11
90 lines
3598 bytes
3598 bytes
Dnia 05.12.2010 gregor <gregor@szu.pl> napisał:
> OK jakos tam sobie poradzilem jak na moje umiejetenosci moze sie komusc
> przyda chodzi przyzwoicie i ladnie zczytuje logi z postfixa
Brawo!
Jednka podobnie jak koledzy bym go dość mocno przerobił. Co ty na propozycję
wspólnego przerobienia? Jednak wtedy wolałbym zobaczyś kawałek takiego logu
i jeszcza raz usłyszeć algorytm nie w perlu tylko słowami w języku polskim.
- Na przykład - początek
Poniżej warunek '$skrzynki{$1} && $sprawdz eq $1' jest równoważny '$sprawdz eq $1'.
foreach my $sprawdz ( keys %skrzynki ) {
if (/regexp/) {
if( $skrzynki{$1} && $sprawdz eq $1 ){
}
}
}
- Na przykład - koniec
Postarałem się trochę go uładzić, ale mi się nie podoba co wyszło. Ja dalej w
tym nie widzę idei. Gdybym dostał taki kod po kimś to bym klął autora na czym
świat stoi. Koszt wejścia to minimum ze 45 minut.
- Kod - początek
#!/usr/bin/perl
my @office_emails = ( 'biuro@xxx.pl', 'marketing@xxx.pl', );
my $working_dir = '/usr/skrypty/maillog/boborowa/logi';
my $logs = read_logs();
foreach my $checked_email (@office_emails) {
open ZAPISZ, "+>>$working_dir/wynik/$checked_email";
for my $log_content (@$logs) {
my %Q = ();
my %line = ();
for my $log_line (@$log_content) {
if ( $log_line =~
m/([\w\.-]*[a-zA-Z0-9_]@[\w\.-]*[a-zA-Z0-9]\.[a-zA-Z][a-zA-Z\.]*[a-zA-Z])/
)
{
my $suspected_email = $1;
if ( $suspected_email eq $checked_email ) {
$Q{$suspected_email} = 1
if (/([0-9A-Z]{10})/);
$line{$log_line} = $suspected_email
if (/([0-9:]{3}[0-9:]{3}[0-9]{2})/);
}
}
}
foreach my $id ( keys %Q ) {
foreach my $sthg_terefere ( grep ( /$id/, @$log_content ) ) {
print $id; # Debugging ???
if ( $sthg_terefere =~ m/([0-9:]{3}[0-9:]{3}[0-9]{2})/ ) {
$line{$id} = $1;
}
}
}
foreach my $line ( sort keys %line ) {
print ZAPISZ $line;
}
}
close ZAPISZ;
}
sub read_logs () {
my $logs = [];
for ( my $log_no = 309 ; $log_no >= 31 ; $log_no-- ) {
my $log_file_name = "$working_dir/maillog.$log_no";
open( LOG_FILE, $log_file_name );
my @log_file_content = <LOG_FILE>
or die "Syplem sie na czytaniu logu $log_file_name";
close(LOG_FILE);
push @$logs \@log_file_content;
}
return $logs;
}
- Kod - koniec
KAcper
--
Mail => www.rot13.com
Technical Details
Message-ID:
<slrnifqns1.2ou.zbp.yvnzt@sztywniak.nawsiegda>Path:
mbox-mo1.pugleaf.net!news-archive.icm.edu.pl!news.icm.edu.pl!not-for-mailReferences:
<idbb3m$dpe$1@inews.gazeta.pl> <idghvm$7d6$1@inews.gazeta.pl>Show Full Headers
Complete Article Headers
Path: mbox-mo1.pugleaf.net!news-archive.icm.edu.pl!news.icm.edu.pl!not-for-mail From: Kacper Perschke <zbp.yvnzt@rxupferc.ercpnx> Newsgroups: pl.comp.lang.perl Subject: Re: problem logiczny ze skryptem Date: Mon, 6 Dec 2010 22:11:14 +0000 (UTC) Organization: Dzial Sieciowy ICM, Uniwersytet Warszawski Lines: 90 Message-ID: <slrnifqns1.2ou.zbp.yvnzt@sztywniak.nawsiegda> References: <idbb3m$dpe$1@inews.gazeta.pl> <idghvm$7d6$1@inews.gazeta.pl> NNTP-Posting-Host: 89-72-187-112.dynamic.chello.pl Mime-Version: 1.0 X-Trace: news.net.icm.edu.pl 1291673474 16593 89.72.187.112 (6 Dec 2010 22:11:14 GMT) X-Complaints-To: usenet@news.net.icm.edu.pl NNTP-Posting-Date: Mon, 6 Dec 2010 22:11:14 +0000 (UTC) User-Agent: slrn/pre1.0.0-18 (Linux) Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit