Freesco, NND, CDN, EOS

http://www.freesco.pl
Dzisiaj jest piątek, 29 marca 2024, 00:43

Strefa czasowa UTC+2godz.




Nowy temat Odpowiedz w temacie  [ Posty: 6 ] 
Autor Wiadomość
Post: piątek, 30 kwietnia 2010, 14:16 
Offline

Rejestracja: poniedziałek, 18 lutego 2008, 13:31
Posty: 72
witam,
Macku czy mozesz pokazac jak wyglada skrypt o ktorym mowa w tym artykule http://nnd-linux.pl/modules.php?name=Ne ... cle&sid=58
(chodzi o ten ktory zlicza ilosc dostarczonej poczty )


Na górę
 Wyświetl profil  
 
 Tytuł:
Post: piątek, 30 kwietnia 2010, 14:29 
Offline
Honorowy Admin

Rejestracja: piątek, 5 lipca 2002, 17:30
Posty: 7800
Lokalizacja: Słupsk
Ja to zrobiłem tak:
1. Skrypt wywoływany z crona
: [/] [] ()
#!/bin/bash
# informacje o dzialaniu exima

/bin/awk -f /root/skrypty/analiza-reject /var/log/exim/rejectlog > /tmp/analiza.txt
/bin/awk -f /root/skrypty/analiza-main /var/log/exim/mainlog >> /tmp/analiza.txt
/usr/bin/mailx -s "Analiza pracy SMTP" maciek(at)emti.one.pl </tmp/analiza.txt

2. Skrypty awk
: [/] [] ()
# analiza mainlog exima
# napisal MKK, modyfikacja WT


/^.*Completed.*$/ {
        Completed++
        }

END {
printf("Dostarczone: %d\n", Completed);
}

: [/] [] ()
# analiza rejectlog exima
# napisal MKK, modyfikacja WT


/^.*Dropped.*$/ {
        Dropped++
        }
/^.*Unknown.*$/ {
        Unknown++
                }
/^.*listed.*$/ {
        listed++
                }
/^.*temporarily.*$/ {
        temporarily++

pos = match($0, "H=")
if (pos > 0) {
str = substr($0, pos, length($0))
printf("Greylistowany: %s\n", substr(str, 4, match(str, "F=") - 4));
}
}

END {
printf("Greylistowane: %d\n", temporarily);
printf("Odrzucone (RCPT): %d\n", Unknown);
printf("W tym na (RBL): %d\n", listed);
printf("Odrzucone (EHLO): %d\n", Dropped);
}

_________________
Obrazek Belfer.one.PL
Obrazek Audio Cafe


Na górę
 Wyświetl profil  
 
 Tytuł:
Post: piątek, 30 kwietnia 2010, 14:40 
Offline

Rejestracja: poniedziałek, 18 lutego 2008, 13:31
Posty: 72
Podziękował


Na górę
 Wyświetl profil  
 
 Tytuł:
Post: sobota, 1 maja 2010, 18:12 
Offline
PGF

Rejestracja: piątek, 25 lutego 2005, 18:22
Posty: 1430
Lokalizacja: Elbląg
Czy mi się zdaje, czy w powyższym skrypcie listed (powinno zliczać tylko odrzucone z powodu znalezienia na RBL) będzie zliczać również Greylisted ?


O tak sobie zrobiłem:
: [/] [] ()
#!/bin/bash

#exim-analiza

[ -z $1 ] || log=".$1"

awk '/Completed/ { Completed++ }
     END { printf("Dostarczone:   %3d\n", Completed); }' \
     /var/log/exim/mainlog$log
echo
awk '(/rejected/ || /: 535 /) && !/[G|g]reylisted/ { Rejected++ }
     /listed in/     { rbl++ }
     /locally/       { lbl++ }
     /Relay/         { relay++ }
     /zaloguj/       { nologin++ }
     /: 535 /        { badlogin++ }
     /Unknown user/  { unknown++ }
     /Dropped/       { helo++ }
     /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);
    }
    printf("Odrzucone:     %3d\n", Rejected);
    printf("  w tym RELAY     %3d\n", relay);
    printf("  w tym na RBL    %3d\n", rbl);
    printf("  w tym na LBL    %3d\n", lbl);
    printf("  w tym nologin   %3d\n", nologin);
    printf("  w tym badlogin  %3d\n", badlogin);
    printf("  w tym unknown   %3d\n", unknown);
    printf("  w tym HELO      %3d\n", helo);
    }' \
    /var/log/exim/rejectlog$log


Wywołując z parametrem od 1-7 można analizować archiwalne logi.

_________________
F33/F07,F11,F13,F17
ObrazekObrazek


Ostatnio zmieniony poniedziałek, 3 maja 2010, 20:07 przez viater, łącznie zmieniany 2 razy

Na górę
 Wyświetl profil  
 
 Tytuł:
Post: sobota, 1 maja 2010, 18:33 
Offline
Honorowy Admin

Rejestracja: piątek, 5 lipca 2002, 17:30
Posty: 7800
Lokalizacja: Słupsk
Nie istnieje nic tak dobrego, żeby nie mogło być jeszcze lepsze :)
Fajny skrypt.

_________________
Obrazek Belfer.one.PL
Obrazek Audio Cafe


Na górę
 Wyświetl profil  
 
 Tytuł:
Post: poniedziałek, 3 maja 2010, 01:08 
Offline
PGF

Rejestracja: piątek, 25 lutego 2005, 18:22
Posty: 1430
Lokalizacja: Elbląg
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

_________________
F33/F07,F11,F13,F17
ObrazekObrazek


Na górę
 Wyświetl profil  
 
Wyświetl posty nie starsze niż:  Sortuj wg  
Nowy temat Odpowiedz w temacie  [ Posty: 6 ] 

Strefa czasowa UTC+2godz.


Kto jest online

Użytkownicy przeglądający to forum: Obecnie na forum nie ma żadnego zarejestrowanego użytkownika i 19 gości


Nie możesz tworzyć nowych tematów
Nie możesz odpowiadać w tematach
Nie możesz zmieniać swoich postów
Nie możesz usuwać swoich postów
Nie możesz dodawać załączników

Szukaj:
Przejdź do:  
cron
Technologię dostarcza phpBB® Forum Software © phpBB Group
Hosting: Compus-Net
RobertKonik.pl