Mailadressen aus Logdatei extrahieren

Dieses Thema im Forum "Ruby, php, Perl, Python ..." wurde erstellt von bluelupo, 15.04.2004.

  1. #1 bluelupo, 15.04.2004
    bluelupo

    bluelupo LangLinuxNutzer

    Dabei seit:
    23.11.2003
    Beiträge:
    119
    Zustimmungen:
    0
    Ort:
    Nahe der bayerischen Alpen
    Hallo zusammen,

    da noch ein ziemlicher Anfänger in der Perlprogrammmierung bin wende mich an euch um bei meinen Problem weiter zu kommen. Ich will das Logfile von postfix auswerten bezüglich aller ankommen Mails die an alle Mailadressen meiner Domain kommen.

    Eine solche Zeile schaut z.B so aus:

    Dec 3 10:09:23 p15139717 postfix/local[23377]: A3B16204063: to=<bluelupo@meinedomain.de>, relay=local, delay=1, status=sent (mailbox)

    Ich extrahiere mir den Namen vor den @-Zeichen herraus und summiere die eingenden Emails (pro Mailaccount) auf.


    #!/usr/bin/perl -w
    #
    $LogDatei="./mail";
    %mailadressen=();

    # LogDatei oeffnen
    open(INFILE, $LogDatei) or die "Datei $LogDatei nicht vorhanden !\n\n";

    while (<INFILE>) {
    if (/.* postfix\/local\[\d+\]: ([\w|\d]{1,11}): to=<(.*)@(.*)>.*/) {
    $mailadressen{$2}++;
    }
    }

    for (sort(keys %mailadressen)) {
    print "$mailadressen{$_}\n";
    }


    Die Ausgabe schaut dann so aus:
    # ./mailstats.pl
    1
    1
    305
    8

    d.h. das vier verschiedene Mailadressen gefunden mit der Anzahl X eingegangener Mails. Ich hätte jetzt aber noch gerne die Mailadressen noch vor den jeweiligen Werten stehen. So etwa.

    bluelupo: 1
    root: 1
    postmaster: 305
    mailinglist: 8

    Irgendwie schaffe ich es nicht noch die Mailadressen an die jeweilige Ausgabezeile auszugeben. Die if-Abfrage liefert das korrekte Ergebnis. Ich denke an dem Array (%mailadressen) liegts wohl. Grrrrr !

    Das tuts leider auch nicht (angefügt ans Ende des Perlscriptes).


    @allMailUsers=(sort(keys %mailadressen));
    @allMails=(sort(values %mailadressen));
    print "@allMailUsers --- @allMails\n";


    Ausgabe:
    bluelupo root postmaster mailinglist --- 1 1 305 8

    Hat jemand einen Tip ?
     
  2. Anzeige

    Schau dir mal diese Kategorie an. Dort findest du bestimmt etwas.
    Registrieren bzw. einloggen, um diese und auch andere Anzeigen zu deaktivieren
  3. Steve

    Steve 13te

    Dabei seit:
    13.04.2002
    Beiträge:
    381
    Zustimmungen:
    0
    Code:
     print "$_:$mailadressen{$_}\n";
    
    so müsste das gehen. ;)
     
  4. #3 bluelupo, 15.04.2004
    bluelupo

    bluelupo LangLinuxNutzer

    Dabei seit:
    23.11.2003
    Beiträge:
    119
    Zustimmungen:
    0
    Ort:
    Nahe der bayerischen Alpen
    Hi Steve,

    ....Danke das ist genau die Ausgabe die ich gebraucht habe. Manchmal sieht den Wald vor lauter Bäumen nicht mehr.
     
Thema:

Mailadressen aus Logdatei extrahieren

Die Seite wird geladen...

Mailadressen aus Logdatei extrahieren - Ähnliche Themen

  1. Exim4 - Faxmaster und andere Emailadressen im lokalen System eines Domänen-PCs

    Exim4 - Faxmaster und andere Emailadressen im lokalen System eines Domänen-PCs: Moin Gemeinde, ich habe viele Debian Systeme in mehreren Domains. Auf allen läuft Exim4 mit eigentlich immer derselben Konfig. Dem System wird...
  2. [wichtig] unixboard emailadressen

    [wichtig] unixboard emailadressen: HI! alle die eine unixboard.* mailadresse haben sollten den account in den nächsten tagen nicht benutzen bzw die mail per pop vom server...
  3. Reaktion auf ein Stichwort in Logdatei

    Reaktion auf ein Stichwort in Logdatei: Hi, ich möchte ne Logdatei auswerten. Die Funktion soll nur einmal nach dem Booten genutzt werden. Wenn "Tue-Das" im Logfile vorkommt start das...
  4. bitte um hilfe bei: Logdatei mit "sed" anpassen

    bitte um hilfe bei: Logdatei mit "sed" anpassen: Hallo zusammen, ich möchte gerne in eine vorhandene Logdatei mit nachfolgendem code anpassen. echo " Bitte nun Hostnamen des Servers...
  5. Umgang mit Logdateien

    Umgang mit Logdateien: Hallo, ich bin gerade dabei X-Server-Hänger unter ubuntu 11.04 aufzuspüren und so habe ich folgende Zeile in rsyslog.conf geschrieben:...