[Techinfo] postfix mailstat siker

Molnar Peter molnarp at afg.hu
2016. Sze. 23., P, 12:35:03 CEST


Hello!

 >Péter ez esetleg megosztható?

Huh, nem vagyok valami nagy szkript iro, nincs meg egyaltalan 
optimalizalva, csak osszevagtam favago modon.

 >A másik dolog, hogy sulix szerver alatt is vajon működőképes lehet-e?

Ha postfix-ot hasznal, akkor semmi akadalya.

Hozzavalok:

grep, awk, mysql, A szkript, ami legyujti a kulonbozo adatokat.

Elvileg a szkript mindig csak a megelozo ora adatait tolti fel adatbazisba.
Az adatbazis egy mailserver nevu nalam, s 1 tabla van benne jelenleg.

CREATE TABLE IF NOT EXISTS `stat` (
   `logid` int(11) NOT NULL AUTO_INCREMENT,
   `datum` date NOT NULL,
   `ora` tinyint(4) NOT NULL,
   `tip` varchar(5) NOT NULL,
   `log` varchar(200) NOT NULL,
   PRIMARY KEY (`logid`),
   KEY `tip` (`tip`),
   KEY `log` (`log`),
   KEY `datum` (`datum`),
   KEY `ora` (`ora`)
) ENGINE=MyISAM  DEFAULT CHARSET=latin1 AUTO_INCREMENT=1 ;

A szkript:

ora=$(date +%H -d  "1 hour ago")
akt=$(date +%Y-%m-%d -d  "1 hour ago")
ev=$(date +"%b %e " -d  "1 hour ago")
mu=mysql_username
mpw=mysql_user_password

for i in `grep "$ev$ora" /var/log/mail.log | grep sasl_username  | awk 
'{print$9}'`
do
echo "use mailserver;insert into stat (tip,datum,ora,log) values 
('bkl','$akt','$ora','$i');" | mysql -u $mu --password=$mpw
done
for i in `grep "$ev$ora" /var/log/mail.log | grep "disallowed plaintext 
auth"  | awk '{print$15}'`
do
echo "use mailserver;insert into stat (tip,datum,ora,log) values 
('p3e','$akt','$ora','$i');" | mysql -u $mu --password=$mpw
done
for i in `grep "$ev$ora" /var/log/mail.log | grep "SASL LOGIN 
authentication failed" | awk '{print$7}'`
do
echo "use mailserver;insert into stat (tip,datum,ora,log) values 
('bkl','$akt','$ora','$i');" | mysql -u $mu --password=$mpw
done
for i in `grep "$ev$ora" /var/log/mail.log | grep "pop3-login: Login:" | 
awk '{print$8$10}'`
do
echo "use mailserver;insert into stat (tip,datum,ora,log) values 
('p3l','$akt','$ora','$i');" | mysql -u $mu --password=$mpw
done
for i in `grep "$ev$ora" /var/log/mail.log | grep "postfix/qmgr" | awk 
'{print$6$7$8}'`
do
echo "use mailserver;insert into stat (tip,datum,ora,log) values 
('bkl','$akt','$ora','$i');" | mysql -u $mu --password=$mpw
done
for i in `grep "$ev$ora" /var/log/mail.log | grep "postfix/lmtp" | awk 
'{print$6$7$8}'`
do
echo "use mailserver;insert into stat (tip,datum,ora,log) values 
('bkl','$akt','$ora','$i');" | mysql -u $mu --password=$mpw
done
for i in `grep "$ev$ora" /var/log/mail.log | grep 
"postfix/submission/smtpd" | awk '{print$8}'`
do
echo "use mailserver;insert into stat (tip,datum,ora,log) values 
('bkl','$akt','$ora','$i');" | mysql -u $mu --password=$mpw
done

//szkript vege

amin meg kell dolgozni:

1.Lehetne a kulonbozo adatokat kulon tablaba tenni.
2.A log mezobe jelenleg omlesztve kerulnek a lenyeges adatok, amiket 
lehetne kulon mezobe rakni.
3. A logot tobbszor is vegig olvasom, legyujtve belole az elmult ora 
logjait, ezt is optimalizalni kellene, hogy csak egyszer tegye meg.
stb.

Sajat jelentesek:

bkl = be ki levelek

p3l = sikeres pop login

p3e = sikertelen pop login


-- 
Tisztelettel:
Molnar Peter
http://www.petersoft.hu



További információk a(z) Techinfo levelezőlistáról