[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

shellscript: Hilfe gesucht (sed, awk, mailfilter)



Hallo,
ich habe mir gerade mailfilter eingerichtet und nutze in der ersten Testphase 
das in der mailfilter-FAQ angegebene Shellscript von Roland Smith, um zu 
sehen, welche Filterregeln greifen:

---------------------------------------------------------------------
#!/bin/sh 
 # -*- shell-script -*- 
 # Id: spamsort,v 1.3 2002/03/14 18:47:39 rsmith Exp rsmith 
 
 LOG=/var/log/mailfilter 
 
 cat $LOG |awk '/Deleted/ {print $NF}'|sed 's/]//g'| sort|uniq -c|sort -r 
 ---------------------------------------------------------------------

Der Output sieht dann etwa so aus:
------------------------------------------
2 '<>^(To|Cc):.*st\.mase@web\.de'
1 '^Subject:.*WIN MONEY'
------------------------------------------

Ich kenne mich mit sed und awk nicht aus, denke aber, dass das Script die 
immer folgende Zeile der Datei /var/log/mailfilter auswertet:

-----------------------------------------------------------------------------------------
mailfilter: Deleted "Mr. Spam" <mr.spam@web.de>: Subject der mail, Sat, 22 Feb 
2003 18:36:41 +0100. [Applied filter: '<>^(To|Cc):.*st\.mase@web\.de']
-----------------------------------------------------------------------------------------

Das funktionierende Script möchte ich in folgender Weise erweitern: Es sollen 
nach der Statistik die e-mail Adressen mit gegriffenem Filter untereinander 
aufgelistet werden. Der Output sollte dann also so aussehen:

---------------------------------------------------------
2 '<>^(To|Cc):.*st\.mase@web\.de'
1 '^Subject:.*WIN MONEY'

mr.spam@web.de        '<>^(To|Cc):.*st\.mase@web\.de'
mrs.spam@gmx.de       '<>^(To|Cc):.*st\.mase@web\.de'
irgendwer@irgendwo   '^Subject:.*WIN MONEY'
---------------------------------------------------------

So könnte ich schnell prüfen, ob vielleicht doch ein von mir falsch 
definierter Filter eine mail gelöscht hat, die ich eigentlich gern gelesen 
hätte. Ich könnte mir vorstellen, dass dazu nur eine weitere Zeile in das 
Script eingefügt werden muss. Etwa:

-------------------------------------------------------------------------
#!/bin/sh 
 # -*- shell-script -*- 

LOG=/var/log/mailfilter 

cat $LOG |awk '/Deleted/ {print $NF}'|sed 's/]//g'| sort|uniq -c|sort -r 
cat $LOG |awk '/Deleted/ {print ........ 
---------------------------------------------------------------------------
Wer kann mir da weiterhelfen?

Stephan
-- 
Stephan Maseizik    <st.mase@web.de>    (gpg-key on request)



Reply to: