[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