Anzeige:
Ergebnis 1 bis 5 von 5

Thema: Email verschicken bei Log-Event

  1. #1
    Registrierter Benutzer
    Registriert seit
    19.09.2004
    Beiträge
    5

    Email verschicken bei Log-Event

    Hallo!

    Ich möchte folgendes machen: Sobald eine Email an einen bestimmten Empfänger aus unserem Mail-Gateway versendet wurde, soll eine Email an eine Person verschickt werden.

    Mein Plan ist soweit:
    Ich durchsuche mit tail die Logdatei /var/log/mail nach der Email-Adresse und erhalte bei einem Versand eine Zeile mit \n am Ende. Wie kann ich daraus eine Email erzeugen? Also ich würde es wohl an ein perl-Script pipen oder direkt an nail, aber da weiß ich nicht genau wie man weiter vorgehen muss....

    Code:
    Kapella:/var/log # tail -f -n 1000 mail | grep -i "to=<jacusy@gmx.net>, relay=192.168.30.24"
    Aug  6 16:12:00 Kapella postfix/smtp[602]: 3251497704: to=<jacusy@gmx.net>, relay=192.168.30.24[192.168.30.24], delay=0, status=sent (250 Ok: queued as B46629170530240A)
    Aug  6 16:15:19 Kapella postfix/smtp[637]: 8D94597704: to=<jacusy@gmx.net>, relay=192.168.30.24[192.168.30.24], delay=0, status=sent (250 Ok: queued as 7E0D0A24053398E0)

  2. #2
    Registrierter Benutzer
    Registriert seit
    07.05.2007
    Beiträge
    656
    Zitat Zitat von jacusy Beitrag anzeigen
    ...
    Ich möchte folgendes machen: Sobald eine Email an einen bestimmten Empfänger aus unserem Mail-Gateway versendet wurde, soll eine Email an eine Person verschickt werden....
    Z. B. so:
    Code:
    lines="`tail -n 1000 mail | grep -i 'to=<jacusy@gmx.net>, relay=192.168.30.24'`"
    if test -n "$lines"; then
    nail -s "Subject" adresse@domain.tld <<!
    $lines
    !
    fi
    Das Ganze in ein Script, per crontab aufrufen, fertig.

    Jan

  3. #3
    Registrierter Benutzer
    Registriert seit
    19.09.2004
    Beiträge
    5
    Ich will das ganze aber nicht als cronjob alle 10 Minuten gepollt haben, sondern in Echtzeit. 1 Minute pollen wäre noch im Zeitrahmen, aber da macht der Rechner ja nichts mehr als crons ausführen. Und das ist nicht seine Aufgabe..

    Ich will eben die Ausgabe von tail.... | grep.... noch weiter pipen und dann beim Auftauchen einer neuen Zeile per Mail schicken.

  4. #4
    Registrierter Benutzer
    Registriert seit
    07.05.2007
    Beiträge
    656
    Zitat Zitat von jacusy Beitrag anzeigen
    Ich will das ganze aber nicht als cronjob alle 10 Minuten gepollt haben, sondern in Echtzeit. 1 Minute pollen wäre noch im Zeitrahmen...
    Dann gibts ein Problem: Du kannst zwar die Ausgabe in einer while-Schleife weiterverarbeiten:
    Code:
    tail -n 1000 mail | grep -i 'to=<jacusy@gmx.net>, relay=192.168.30.24' | while read line; do
      ...
    done
    aber der read kriegt die Ausgabe erst zu sehen, wenn der I/O-Puffer voll ist. Wenn eine Weile nichts an jacusy geschickt wird, dann kann es sein, dass Du die Ausgaben erst nach Tagen siehst.

    Als Alternative solltest Du Dir mal logsurfer anschauen, der bietet IMHO alles, was Du brauchst.

    Jan

  5. #5
    Registrierter Benutzer
    Registriert seit
    19.09.2004
    Beiträge
    5
    sieht verdammt gut aus, danke!

Lesezeichen

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •