Példák: statisztika a hibás címre érkező levelekről
2009. August 7. - 14:54 | szerző: jonci
Kategóriák: GNU/Linux, példák
Címkék: , , , , ,

A levelező szerverünk által kezelt domainek száma folyamatosan nő a növekvő ügyfelek számával arányosan, de ez nem okoz fennakadást. Azonban az egyik nap érzékelhető volt egy kisebb késleltetés a levelek kézbesítésében.

Az okozta a késleltetést, hogy rengetek SPAM ömlött be nem létező e-mail címekre. A levelező szerver megpróbált mindegyikre egy visszautasító (bounce) levelet küldeni, csak az volt a baj, hogy a feladó címek sem léteztek, így ezek a bounce üzenetek felhalmozódtak a kézbesítési sorban (queue). (A feladó e-mail cím valódiságának ellenőrzését sajnos ki kellett kapcsolni, máskülönben sok ügyfél nem kapna meg jópár hírlevelet.)

Pár parancs összekapcsolásával készíthetünk egy olyan statisztikát a hibás címekre érkező levelekről, amely elárulja, hogy domainenként mennyi ilyen levél fordult elő:

   2450 domain2.tld
     54 domain1.tld
     26 domain3.tld
     ... ...

Ehhez az alábbi parancsot kell kiadni:

1. $ grep 'user unknown' /var/log/mail.log 
2.   | awk '{print $7}' 
3.   | sed -e 's/^[^@]+@//' -e 's/>.*//' 
4.   | sort -f 
5.   | uniq -c 
6.   | sort -nr

Nézzük végig a parancsot soronként!

  1. sorban leszűrjük a user unknown kifejezésre illeszkedő sorokat a /var/log/mail.log fájlból
    Aug 7 12:07:29 mail postfix/pipe[20825]: 40F3A25DDE: to=<hibas.cim@domain1.tld>, relay=maildrop, delay=0.07, delays=0.04/0.01/0/0.02, dsn=5.1.1, status=bounced (user unknown. Command output: Invalid user specified. )
  2. sorban kihasználva, hogy alapesetben az awk whitespace-ek (szőköz, tabulátor, stb.) mentén felszabdalja a sort, kiszűrjük vele a 7. oszlopba került adatot
    to=<hibas.cim@domain1.tld>,
  3. sorban levágunk minden járulékos karaktert a domainről
    domain1.tld
  4. paranccsal névsor szerint rendeztetjük a domain listát, hogy a következő paranccsal eltávolíthassuk a duplikációkat (ezt a sort is tudná [sort -u], de nem tudja kiírni az előfordulások számát)
  5. paranccsal megszüntetjük a duplikációkat és egyben lekérdezzük az előfordulások számát is
    54 domain1.tld
  6. sorban pedig az előfordulások száma szerint csökkenő sorrendbe rendeztetjük az egész listát
Email This Post Email This Post Print This Post Print This Post
 
1 Star2 Stars3 Stars4 Stars5 Stars (No Ratings Yet)
Loading...

Szólj hozzá!