Current time: 12-24-2024, 09:53 AM Hello There, Guest! (LoginRegister)


Post Reply 
 
Thread Rating:
  • 0 Votes - 0 Average
  • 1
  • 2
  • 3
  • 4
  • 5
[ERLEDIGT]email Logs für Kunden
Author Message
rbtux Offline
Moderator
*****
Moderators

Posts: 1,847
Joined: Feb 2007
Reputation: 33
Post: #21
RE: [ERLEDIGT]email Logs für Kunden
es wäre besser auf die Message ID zu greppen, dann siehst du auch wer das ganze einliefert...

ich hab da kurz was zusammengeflickt, ist zwar nicht schön, sollte aber funktionieren...

Code:
#!/bin/bash
deleteafterdays=184
if [ "$1" = "" ]; then
    echo "Parameter: usermaillog <Domain/Aliasdomain> <optional Hauptdomain>"
else
    DATUM=`date '+%Y-%m-%d'`
    if [ "$2" != "" ]; then
        if [ -d /var/www/virtual/$1 ]; then
            serverdomain=$1
        else
            serverdomain=$2
        fi
    else
        serverdomain=$1
    fi
    if [ -d /var/www/virtual/$serverdomain ]; then
        # Berechtigung des Domainverzeichnisses ermitteln
        LG=`stat -c%U /var/www/virtual/$serverdomain`

        find /var/www/virtual/$serverdomain/logs/mail_$1* -mtime +$deleteafterdays -exec rm {} \; >/dev/null 2>&1
        echo "" > /var/www/virtual/$serverdomain/logs/mail_$1_$DATUM
        grep $1 /var/log/mail.log | grep postfix | cut -d ":" -f 4 | uniq | sed 's/^[ \t]*//;s/[ \t]*$//' > /tmp/usermaillog.tmp
        while read zeile; do
            grep $zeile /var/log/mail.log >> /var/www/virtual/$serverdomain/logs/mail_$1_$DATUM
        done < /tmp/usermaillog.tmp
        rm /tmp/usermaillog.tmp

        # Berechtigung auf die angelegte Datei ändern
        chown $LG:$LG /var/www/virtual/$serverdomain/logs/mail_$1_$DATUM

    else
        echo "Fehler: Verzeichnis /var/www/virtual/$serverdomain existiert nicht."
    fi
fi

Funktioniert natürlich nur richtig, wenn der spam filter als smtp_proxy und nicht als content filter läuft... (naja content filter ist ja sowiso bullshit ;-))
(This post was last modified: 01-31-2009 09:15 AM by rbtux.)
01-31-2009 09:07 AM
Visit this user's website Find all posts by this user Quote this message in a reply
Knut Offline
Member
***

Posts: 736
Joined: Nov 2006
Reputation: 10
Post: #22
RE: [ERLEDIGT]email Logs für Kunden
Eine kleine "Verbesserung" habe ich noch eingefügt.
Sollte das Script zweimal zur gleichen Zeit laufen, würde das gleiche TMP-File verwendet werden.

Durch
Code:
TMPFILE=`mktemp /tmp/usermail.XXXXXXXX`
wird eine eindeutiges File erzeugt und in der Variable $TMPFILE gemerkt. Weiter unten im Code wurde entsprechend die Variable eingesetzt.

Code:
#!/bin/bash
deleteafterdays=184

TMPFILE=`mktemp /tmp/usermail.XXXXXXXX`

if [ "$1" = "" ]; then
    echo "Parameter: usermaillog <Domain/Aliasdomain> <optional Hauptdomain>"
else
    DATUM=`date '+%Y-%m-%d'`
    if [ "$2" != "" ]; then
        if [ -d /var/www/virtual/$1 ]; then
            serverdomain=$1
        else
            serverdomain=$2
        fi
    else
        serverdomain=$1
    fi
    if [ -d /var/www/virtual/$serverdomain ]; then
        # Berechtigung des Domainverzeichnisses ermitteln
        LG=`stat -c%U /var/www/virtual/$serverdomain`

        find /var/www/virtual/$serverdomain/logs/mail_$1* -mtime +$deleteafterdays -exec rm {} \; >/dev/null 2>&1
        echo "" > /var/www/virtual/$serverdomain/logs/mail_$1_$DATUM
        grep $1 /var/log/mail.log | grep postfix | cut -d ":" -f 4 | uniq | sed 's/^[ \t]*//;s/[ \t]*$//' > $TMPFILE
        while read zeile; do
            grep $zeile /var/log/mail.log >> /var/www/virtual/$serverdomain/logs/mail_$1_$DATUM
        done < $TMPFILE
        rm $TMPFILE

        # Berechtigung auf die angelegte Datei ändern
        chown $LG:$LG /var/www/virtual/$serverdomain/logs/mail_$1_$DATUM

    else
        echo "Fehler: Verzeichnis /var/www/virtual/$serverdomain existiert nicht."
    fi
fi

Ruft man das Script auf der Console auf kommt übrigens eine kleine Fehlermeldung. Die grep-/find- Kombination fügt in das TMP-File mit den Message-ID noch zwei weitere Zeilen ein:
Code:
weighted check
NOQUEUE
(Zumindest ist es bei mir so)

Die Logs werden aber weiter brav angelegt.

Gruß Knut
01-31-2009 04:29 PM
Find all posts by this user Quote this message in a reply
rbtux Offline
Moderator
*****
Moderators

Posts: 1,847
Joined: Feb 2007
Reputation: 33
Post: #23
RE: [ERLEDIGT]email Logs für Kunden
jop der grep auf die Message-ID kann sicher besser gemacht werden ;-) Aber in Bash? ich weiss nicht...
01-31-2009 10:43 PM
Visit this user's website Find all posts by this user Quote this message in a reply
Knut Offline
Member
***

Posts: 736
Joined: Nov 2006
Reputation: 10
Post: #24
RE: [ERLEDIGT]email Logs für Kunden
(01-31-2009 07:46 AM)BeNe Wrote:  Perfekt! Danke für die Arbeit!
Kann ich euch dann bitten das ins Wiki zu übernehmen ?
Macht ja durchaus sinn in einigen Fällen es dem Kunden zu verfügung zu stellen.

Greez BeNe

Done.
http://www.isp-control.net/documentation...uer_kunden
05-31-2009 02:50 AM
Find all posts by this user Quote this message in a reply
BeNe Offline
Moderator
*****
Moderators

Posts: 5,899
Joined: Jan 2007
Reputation: 68
Post: #25
RE: [ERLEDIGT]email Logs für Kunden
Thanks @Knut für den Eintrag!
Also wenn das alles so passt, dann bin ich fast dafür das mal in den trunk zu übernehmen. Sinn macht es aus meiner Sicht! Super idee.

Greez BeNe
05-31-2009 07:20 AM
Visit this user's website Find all posts by this user Quote this message in a reply
Post Reply 


Forum Jump:


User(s) browsing this thread: 1 Guest(s)