Maciek pisze:
Nie istnieje nic tak dobrego, żeby nie mogło być jeszcze lepsze
Fajny skrypt.
Dzięki ale to Twój skrypt
Widzisz, jednym z moich największych problemów jest analityczny umysł, czyli jak mam coś zrobić od podstaw, to jest dla mnie droga przez mękę, bo za cholerę nie wiem jak to ma wyglądać i od czego zacząć, natomiast jak mi dasz coś już w miarę przygotowane, to zrobię z tym cuda niewidy
Kolejna modyfikacja :
#!/bin/bash
#exim-analiza
[ -z $1 ] || log=".$1"
date -d "yesterday" +%F
echo '----------'
echo
awk '/Completed/ { Completed++ }
END { printf("Dostarczone: %3d\n", Completed); }
' /var/log/exim/mainlog$log
echo
awk '(/rejected/ || /: 535 /) && !/Greylisted/ { Rejected++ }
/listed in/ { rbl++; wtym++ }
/locally/ { lbl++; wtym++ }
/Relay/ { relay++; wtym++ }
/zaloguj/ { nologin++; wtym++ }
/: 535 / { badlogin++; wtym++ }
/Unknown user/ { unknown++; wtym++ }
/Dropped/ { helo++; wtym++ }
/Greylisted/ { temporarily++
pos = match($0, "H=")
if (pos > 0) {
str = substr($0, pos, length($0))
printf("Greylistowany host: %s\n",
substr(str, 3, match(str, "F=") - 4));
}
}
END {
if ( temporarily>0 ) {
printf("-------------------\n");
printf("Greylistowane: %3d\n\n", temporarily);
}
inne = Rejected - wtym;
printf("Odrzucone: %3d\n", Rejected);
if ( Rejected > 0 ) printf("w tym:\n");
if ( relay > 0 ) printf(" - RELAY %3d\n", relay);
if ( rbl > 0 ) printf(" - na RBL %3d\n", rbl);
if ( lbl > 0 ) printf(" - na LBL %3d\n", lbl);
if ( nologin > 0 ) printf(" - nologin %3d\n", nologin);
if ( badlogin > 0 ) printf(" - badlogin %3d\n", badlogin);
if ( unknown > 0 ) printf(" - unknown %3d\n", unknown);
if ( helo > 0 ) printf(" - HELO %3d\n", helo);
if ( inne > 0 ) printf(" - pozostałe%3d\n", inne);
}' \
/var/log/exim/rejectlog$log
echo
echo "===================================================="
echo
W takim układzie, jak jest, trzeba odpalać skrypt z crona po rotacji logów, z parametrem 1, czyli np.:
04 00 * * * /usr/local/sbin/exim-analiza 1 >> /var/log/exim/analiza 2>/dev/null