Toon posts:

[perl] reject regels uit maillog filteren *

Pagina: 1
Acties:

Verwijderd

Topicstarter
Effe een vraagje van de domste n00b op aarde :)

Ik wil een klein perl programmaatje maken die voor mij het woord "reject" filtert en op het scherm afdrukt van mijn maillog. Hier is mijn klein stukje code:

#!/usr/bin/perl -w
$MAILLOG="/var/log/maillog";
open(MAILLOG) || die("Could not open log file.");
while (<MAILLOG>) {
if (/reject/) {
print;
}
close MAILLOG;

Echter dit werkt niet. Kan iemand mij wat tips geven hoe ik dit kan doen? Geen one liners maar ik wil dit programaatje uitbreiden. Ja ik weet het maar ik ben pas begonnen met perl programmeren }:O

Alvast bedankt.

  • gorgi_19
  • Registratie: Mei 2002
  • Laatst online: 19:24

gorgi_19

Kruimeltjes zijn weer op :9

En wat werkt er dan niet? Welke foutmelding krijg je? Wat heb je geprobeerd? :) Kijk eens naar regular expressions, trouwens :)

Digitaal onderwijsmateriaal, leermateriaal voor hbo


Verwijderd

Topicstarter
readline() on closed filehandle MAILLOG at ./maillog.pl line 4.

Dit is de foutmelding die het programma geeft. Maar ik had gehoopt dat er hier op tweakers een perl wizard is die mij in 1 seconde kan vertellen wat ik vergeten ben :)

  • 0siris
  • Registratie: Augustus 2000
  • Laatst online: 10-05 18:18
waarom niet gewoon
code:
1
grep "/reject/" /var/log/maillog

Ik weet het, je vraagt Perl, maareh...

ach...in een volgend leven lach je er om!


Verwijderd

Topicstarter
Ik wil juist perl gebruiken. Met de unix shell ben ik wel bekend. Ik wil alleen nu vaker programmeren. Maar ach eigenlijk moet ik gewoon zoeken. Dit probleem hoeft niet zo moeilijk te zijn. Maar eh effe zoeken dan. Toch bedankt mensen :)

Verwijderd

Topicstarter
#!/usr/bin/perl -w
$MAILLOG="/var/log/maillog";
open(MAILLOG) || die("Could not open log file.");
while (<MAILLOG>) {
if(m/reject/) {
print;
}
}
close MAILLOG;

Heb het gevonden :D Die accolade moest voor de close statement :) En nu dan effe verder perlen :) Nu uitzoeken hoe ik het ip adres kan zetten in een variable en dan mailen naar mijn useraccount dan heb ik logfiles in mijn mailbox zitten. Handig :9

  • JaWi
  • Registratie: Maart 2003
  • Laatst online: 14-01 21:58

JaWi

maak het maar stuk hoor...

Het kan ook in een regel:

code:
1
perl -ne 'm/\breject\b/i && print "$_"' logfile


edit, als je de resultaten naar je email wilt sturen:

code:
1
perl -ne 'm/\breject\b/i && print "$_"' logfile | mail -s "log results" my@domain.com

[ Voor 54% gewijzigd door JaWi op 27-09-2004 20:46 ]

Statistics are like bikinis. What they reveal is suggestive, but what they hide is vital.

Pagina: 1